java编程思想第四版第十一章总结】的更多相关文章

第一题 package net.mindview.holding.test1; import java.util.ArrayList; import java.util.List; /** * 沙鼠 * @author samsung * */ public class Gerbil { static int counter; int gerbilNumber; public Gerbil(){ this.gerbilNumber = counter ++; } public String ho…
1. 容器类被分为两类:Collection和Map Collection是一个接口:包括: List接口: ArrayList:按照被插入顺序保存元素, 查询快, 增删改慢 LinkedList:按照被插入顺序保存元素, 增删改块,查询慢. Set接口:元素不能重复 HashSet:已相当复杂的方式来存储元素,这种技术是最快的获取元素的方式 TreeSet:按照结果的升序保存元素 可以自行执行排序方式.默认是按照字典顺序排序.如果想按照字母顺序排序,可以向TreeSet构造器中传入String…
fas 第二题 package net.mindview.strings; import java.util.ArrayList; import java.util.List; /** * 无限循环 */ public class InfiniteRecursion { public InfiniteRecursion(){ } @Override public String toString() { return " InfiniteRecursion address" + supe…
欢迎加群:239063848 成团的笔记:该组仅用于技术共享和交流,问题和答案公布 潘基聊天.禁止广告.禁止招聘-- 练习1:(2)创建一个简单的类.第二个类中,将一个引用定义为第一个类的对象.运用惰性初始化来实例化 这个对象. package test; public class Manager { public static void main(String args[]){ Second s=new Second(); s.getFirst(); } /** * 打印结果: */ } cl…
(略) (略) 创建两个包:debug和debugoff,他们都包含一个相同的类,该类有一个debug()方法,第一个版本显示发送给控制台的String参数,而第二版本什么也不做,使用静态import语句将该类导入到一个测试程序中,并示范条件编译效果. package net.mindview.access; public class Test3 { public static void main(String[] args) { net.mindview.access.debug.Test3…
1. 代码重构 为什么f要代码重构 第一次代码不一定是完美的, 总会发现更优雅的写法. 代码重构需要考虑的问题 类库的修改不会破坏客户端程序员的代码. 源程序方便扩展和优化 2. 包 创建一个独一无二的报名 通常package名称的第一部分是类的创建者的返序的Intenet域名.例如; 我的域名是MindView.net,把他的顺序倒过来,并且全部转换为小写. 就是net.mindview, 一个独一无二的全局域名.然后再在下面创建模块包名 3. java访问权限修饰词 public, priv…
创建一个类, 它包含一个未初始化的String引用.验证该引用被Java初始化成了null package net.mindview.initialization; public class Test1 { public String str; public static void main(String[] args) { Test1 t = new Test1(); System.out.println(t.str); } } 返回结果 null 创建一个类, 它包含一个在定义时就被初始化了…
欢迎加群:239063848 进群须知:本群仅用于技术分享与交流.问题公布与解答 禁止闲聊.非诚勿扰 练习1:(1)在某个包中创建一个类,在这个类所处的包的外部创建该类的一个实例. import mil.oms.main.test.Test; public class MainTest { public static void main(String args[]){ Test test=new Test(); } /** 执行结果 Test()实例化-- */ } package mil.om…
1. String和StringBulider的使用 通过书中介绍, 我们得知如下结论: 当使用+连接符将字符串进行拼接的时候, 编译器会进行自动优化为使用StringBuilder连接字符串. 当在for循环中使用+连接符进行拼接字符串的时候, 每一个for循环都会创建一个Stringbuilder对象. 这样就会产生多个需要垃圾回收器回收的垃圾.效率较低. 这时,建议不要使用+连接符拼接字符串, 而是使用StringBuilder连接字符串. 总结: 当字符串操作比较简单(没有for循环等)…
(略) (略) (略) (略) 创建两个带有默认构造器(空参数列表)的类A和类B.从A中继承产生一个名为C的新,并在C内创建一个B类的成员.不要给C编写构造器.创建一个C类的对象并观察其结果. package net.mindview.reusing; public class A { public A(){ System.out.println("A"); } } package net.mindview.reusing; public class B { public B(){ S…
1. 实现类的复用通常有两种方式 组合:在新的类中产生现有类的对象 继承:按照现有类的类型来创造新类 2. 一个特殊的方法toString() 在非基本类型的对象中, 都有toString()方法 当编译器需要一个String而你只有一个对象时, toString()方法会被自动调用 3. 父类方法的定义要求 所有的方法都是public的. 原因: 如果没有修饰符,则是包访问权限, 那么包以外的其他类继承了这个类, 依然不能访问这个父类的方法. 所以, 定义父类的公用方法需要时public的.…
1. 构造器 构造器的一个重要的作用: 保证对象被使用之前初始化了. 构造器是一种特殊类型的方法, 因为他没有返回值.这与返回值为空(void)明显不同.对于空返回值,尽管方法本身不会自动返回什么, 但仍可选择让他返回别的东西. 思考: void还可以返回别的东西? 是什么东西呢? 后来想到, 可能是void可以通过return ;返回. 也就是可以截断下面的流程. 而构造函数不可以, 他必须将其全部执行完毕才能退出方法.  return; 就是返回void的. 2. 方法重载 方法重载的条件…
1. 静态导入 使用import static方式导入一个类的所有方法. 例如: import static net.mindview.util.Print.*; 首先定义了一个Print类,里面有静态方法print package net.mindview.util; public class Print { public static void print(Object s){ System.out.println(s); } } 使用的时候 在类前使用import static导入即可.…
使用"简短的" 和正常的 打印语句来编写一个程序 package net.mindview.util; public class Print { /** * 不带有回车 * @param s */ public static void print(Object s){ System.out.print(s); } /** * 带有回车 * @param s */ public static void println(Object s){ System.out.println(s); }…
练习3: public class MainTest { public static void main(String args[]){ Bcycle b=new Bcycle(); b.print(); } /** * 输出: * --Bcycle-------47 * ----print-----47 */ public static void p(String str){}; } abstract class Cycle{ public abstract void print(); } c…
练习3:(1)创建一个带默认构造器(即无參构造器)的类.在构造器中打印一条消息.为这个类创建一个对象.P116 public class Test{ public Test(){ System.out.println("Hello Word"); } public static void main(String[] args) { new Test(); } /** * 执行结果 Hello Word */ } 练习4:(1)为前一个练习中的类加入一个重载构造器,令其接受一个字符參数.…
在java编程思想第四版中需要使用net.mindview.util包,大家可以直接到http://www.mindviewinc.com/TIJ4/CodeInstructions.html 去下载,并按照所在页面的操作进行操作.当然也可以直接我下载下面的链接,下载的直接是JAR包,可以直接导入并使用: net.mindview.util包:百度网盘:点击下载  密码: ggpi java编程思想第四版源码:百度网盘:点击下载  密码: ur3e 下面我简单的介绍一下源码在Eclipse中的导…
<Java编程思想第四版完整中文高清版.pdf>-笔记 附录 B 对比 C++和 Java “作为一名 C++程序员,我们早已掌握了面向对象程序设计的基本概念,而且 Java 的语法无疑是非常熟悉的.事实上,Java 本来就是从 C++衍生出来的.” 然而,C++和Java 之间仍存在一些显著的差异.可以这样说,这些差异代表着技术的极大进步.一旦我们弄清楚了这些差异,就会理解为什么说Java 是一种优秀的程序设计语言.本附录将引导大家认识用于区分 Java 和C++的一些重要特征. (1) 最…
坊间传说这本书翻译得很烂,我倒觉得还好.虽然看原文更准确,但是如果在具备一定编程思维和基础.能够看出来疑问的情况下,还是看中文更快一些,而且这本书本身也不适合初学者看.当然,错误和不通顺还是有的,而且官方和网上居然没有一份公开的勘误表,至少我没有搜到,搜索“Java编程思想第四版勘误”时出现的都是CSDN上的一篇久远的帖子.也许发现问题的人已经懂了,不在意那些错误. 在此记录我发现的问题以及翻译得不够好的地方,如果有人能够看到此文,且发现各种问题,欢迎补充.开源的工具就应当一切周边都开源. 1.…
Java编程思想第四版完整中文高清版.pdf 链接: https://pan.baidu.com/s/1vV5BHF3L-bnaG6WGurdJ_A 提取码: vigy 复制这段内容后打开百度网盘手机App,操作更方便哦…
D.2.1 安插自己的测试代码 插入下述“显式”计时代码,对程序进行评测: long start = System.currentTimeMillis(); // 要计时的运算代码放在这儿 long time = System.currentTimeMillis() - start; 目录 前言 简介 第1章 对象导论 1.1 抽象过程 1.2 每个对象都有一个接口 1.3 每个对象都提供服务 1.4 被隐藏的具体实现 1.5 复用具体实现 1.6 继承 1.6.1 “是一个”(is-a)与“像…
附录 C Java 编程规则 本附录包含了大量有用的建议,帮助大家进行低级程序设计,并提供了代码编写的一般性指导: (1) 类名首字母应该大写.字段.方法以及对象(句柄)的首字母应小写.对于所有标识符,其中包含的所 有单词都应紧靠在一起,而且大写中间单词的首字母.例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母.这样便可标志出它 们属于编译期的常数. Java 包(P…
To solve the general programming problem, you need to create any number of objects, anytime, anywhere. So you can't rely on creating a named reference to hold each one of your objects. Java has several ways to hold objects: 1. the compiler-supported…
1. 策略设计模式 参考这篇文章:http://blog.csdn.net/chenjie19891104/article/details/6396458 讲的很清楚,策略设计模式.并且举了一个例子,很具有代表性. 先简单了解一下: 和模板方法模式的区别: 文章里还有一个例子: 备注:我来分解,解释一下这个例子. 将共同的方法定义成了一个接口,在这个接口中并没有这个共同方法的实现. 在Strategy类中,定义了一个方法execute,它的参数是拥有共同方法的接口类. 用户Context在调用S…
第一题 package net.mindview.innerclasses; public class Outer { class Inner { Inner(){ System.out.println("这是一个内部类"); } } public Inner in(){ return new Inner(); } public static void main(String[] args) { Outer out = new Outer(); Outer.Inner inner =…
第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void print(); } public class Test3 extends Base{ ; @Override void print() { System.out.println(i); } public static void main(String[] args) { Test3 t = new T…
练习1:创建一个类,它包含一个int域和一个char域,它们都没有被初始化.将他们的值打印出来,以验证Java执行了默认初始化 public class JavaThinking { private static int i; private static char c; public static void main(String[] args){ System.out.println(i); System.out.println(c); //这里char的默认值为'\u0000'可以这样输出…
Thinking in Java 4th 中.英文两版pdf文档,书中源码及课后习题答案.链接:https://pan.baidu.com/s/1BKJdtgJ3s-_rN1OB4rpLTQ 密码:2zc4 http://greggordon.org/java/tij4/solutions.htm 亦为Thinking in Java 4th英文版的课后习题答案. 使用Eclipse运行Thinking in Java 4rd例子源码:https://blog.csdn.net/u0135737…
fda dfa 第三题u package net.mindview.typeinfo.test4; import java.util.ArrayList; import java.util.Arrays; import java.util.List; abstract class Shape { void draw(){ /* * 重点在这里: * this指代的是实例对象,由于使用+连接字符串, 会自动调用对象的toString()方法. */ System.out.println(this…
第一题 package net.mindview.polymorphism; //基类-自行车 class Cycle{ } //子类-单轮车 class Unicycle extends Cycle{ } //子类-双轮车 class Bicycle extends Cycle{ } //子类-三轮车 class Tricycle extends Cycle{ } public class CycleCompetition { public static void ride(Cycle cyc…