为了面试,要重新复习一下JAVA语法,就挑了这个本书。
2013-3-5
第一章
走马观花,略了吧。
第二章 类与对象
一、 final关键字
1)final类不允许有子类
2)final方法不能被子类覆盖
3)final字段不能被修改(在构造器之后)
二、访问控制
public、protected、无(package)、private
1)访问控制是在类层次上而非对象层次上实现的,所以类中的方法可以访问这个类的所有对象的所有字段。
2)一般情况下,public类必须声明在与类同名的文件中,即一个文件中只能有一个public类
三、参数传递
1)JAVA传参是传值(pass by value),不是传引用(pass by reference)。
JAVA可以传入一个对象引用的值copy,不是C++中的引用。
2)varargs,不定参数实际就是个数组,在考虑函数重载时候参数类型被看做数组。
-
public class Main {
-
-
public static void print(String... strArray) {
-
System.out.println("number of args: " + strArray.length);
-
for (String str : strArray)
-
System.out.println(str);
-
}
-
-
/**
-
* @param args
-
*/
-
public static void main(String[] args) {
-
// TODO Auto-generated method stub
-
Main.print("OK", "Yes");
-
}
-
-
}
2013-3-6
第三章 类的扩展
一、构造器
1)构造器不是方法,也不能被继承
2)构造器的调用过程
为所有字段分配内存空间,设置为默认值
1. 调用超类构造器(知道Object)
2. 所在类的初始化器和初始化块执行
3. 执行构造器函数体
这是一个递归的过程。
3)构造器应该尽量避免调用可覆盖的函数
二、重载(overload) 覆盖(override) 隐藏
1)子类方法的覆盖,访问权限只能放大或不变,不能变小,否则就违反了父类所定下的contract了。
2)覆盖函数的调用时依赖于对象的实际类型,而非引用类型,但是隐藏字段是依赖于引用类型的。
三、equal() hashcode() clone()
1)equal如果成立,那么hashcode()返回的必然是相等的,也就是说在覆盖equal()时候,同时也要覆盖hashcode()
2)clone()这个有点复杂,暂时放放。
第四章 接口
1)接口是纯设计的一种表达形式,而类则是设计和实现的混合物
2)接口的字段默认是public static final
3)接口方法是 public abstract
4)要小心多重继承是字段的二义性
第五章 内部类和接口
嵌套类型和包围类型彼此可以访问对方所有的成员。
说实在的这本书讲得倒是挺好的,就是例子少,有点枯燥,还是换一本吧。
阅读(466) | 评论(0) | 转发(0) |