Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97500
  • 博文数量: 21
  • 博客积分: 145
  • 博客等级: 入伍新兵
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2012-12-22 17:37
文章分类

全部博文(21)

文章存档

2013年(16)

2012年(5)

我的朋友

分类: Java

2013-03-06 15:17:04

为了面试,要重新复习一下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,不定参数实际就是个数组,在考虑函数重载时候参数类型被看做数组。

点击(此处)折叠或打开

  1. public class Main {
  2.     
  3.     public static void print(String... strArray) {
  4.         System.out.println("number of args: " + strArray.length);
  5.         for (String str : strArray)
  6.             System.out.println(str);
  7.     }

  8.     /**
  9.      * @param args
  10.      */
  11.     public static void main(String[] args) {
  12.         // TODO Auto-generated method stub
  13.         Main.print("OK", "Yes");
  14.     }

  15. }

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) |
给主人留下些什么吧!~~