Java学习笔记
蒋明原
1. Java中方法参数的使用情况
a) 一个方法不能够修改一个基本数据类型的参数(即布尔型和数值型)
b) 一个方法可以改变一个对象参数状态
c) 一个方法不能让一个对象引用另一个对象
2. 显式参数和隐式参数
public void raiseSalary(double byPercent) {
double raise = salary * byPercent / 100;
salary += raise;
}
下面的调用:
employee.raiseSalary(3);
这个调用具体点说是执行了下面的过程:
double raise=employee.salary*byPercent/100;
employee.salary+=raise;
raiseSalary方法有两个参数,第一个是出现在方法名前的Employee类对象employee,这个就是隐式参数.第二个参数是出现在方法名后括号内的数值” 3” ,这是显式参数.
3. 方法的签名
方法的名字和参数列表被称为方法的签名.例如f(int)和f(String)就是两个具有相同名字不同签名的方法。需要注意的是,返回类型不属于方法签名的一部分。
4. 重载
一个类中,若是有多个方法有相同的名字,但参数不同,这便产生了重载。
5. Finalize
可以为任何一个类添加finalize方法,finalize方法将在垃圾回器清除对象之前被调用。
6. 类设计技巧
a) 一定将数据设计为私有
b) 一定要对数据进行初始化
c) 不要在类中使用过多的基本数据类型
d) 不是所有的域都需要独立的域访问器和域更改器
e) 使用标准格式进行类的定义(顺序如下)
i. 共有访问特性部分
ii. 报作用域访问特性部分
iii. 私有访问特性部分
f) 将职责过多的类进行分解
g) 类名和方法名应能体现出他们的职责
7. 覆盖(override)
超类中的某些方法对子类不一定适用,可以把这个方法在子类中进行改变(重新定义),这个过程就是覆盖(override).需要注意的是,子类方法的可见性不能低于父类的可见性。
8. 置换和多态
置换:在程序中出现超类对象的地方都可用子类的对象进行代替(置换).
多态:在java语言中,对象变量是多态的.一个Employee类型变量(这是父类),既可以引用一个Employee类型对象,又可以引用一个Employee类的任意一个子类的对象,如(Manager等).
不能将一个超类的对象赋给子类。
9. 内联(inlining)
如果一个没有被覆盖并且很短,编译器就能对它进行优化处理,这个过程就是内联。
比如:内联调用e.getName()将被替换成访问e.name域
10. 抽象类、抽象方法
a) 包含一个或者多个抽象方法的类是必须被声明为抽象的。
b) 不能构造抽象类的对象。比如 abstract class A,是不能用于 A a=new A();的
c) 若子类全部实现了抽象类中定义的抽象方法,那么子类不必声明为抽象的;若是没有全部实现抽象类中定义的抽象方法,那么子类也要定义为抽象的。
11. Java中用于控制可见性的4个访问修饰符
a) 仅对本类可见:private
b) 对所有类可见:public
c) 对本包和所有子类可见:protected
d) 对本包默认可见:默认,就是不加任何的修饰符,这是一种糟糕的方式。不建议使用。
12. ==的作用和equals的作用
a) ==的作用是检测对象是否指向同一个存储区
b) Equals的作用是检测两个对象是否相等.
13. 包装器
有时候需要将int这样的基本类型转换成对象.所有基本类型都有一个与之对应的类,Integer类对应int等.通常将Integer这样的类成为包装器(wrapper)
14. 自动打包和拆包(装箱和拆箱)
比如: list.add(3)在编译器解释的时候会解释成list.add(new Integer(3));这种变换称为自动打包(装箱)。
比如:int a=list.get(i);在编译器编译的时候会解释成int a=list.get(i).intValue();这种变换成为自动拆包(拆箱)
15. 接口
接口主要描述类具有什么功能,而不是给出具体的实现.一个类可以实现多个接口,并在需要接口的地方随时使用实现了相应接口的对象..
接口不是类,而是一组对类的需求的描述.这些类药遵从接口描述的统一格式进行定义.
“如果你的类遵循某个特定接口,那么我将履行这项服务”是对接口的形象描述.
Arrays类中的sort方法承诺可以对对象数组进行排序,但是要求满足下列前途:对象所属的类必须实现了comparable接口.
16. mvc
a) 模型:存储内容
b) 视图:显示内容
c) 控制器:处理用户输入
在设计模式中,模型存储完整的内容,视图给出了内容的可视化显示。模型就像一个给画家摆好pose的模特,此时取决于画家是如何看待模特的,并据此创作一幅画,可能是一幅水墨画,也可能是其它的。