1.绝对不能让类中的方法直接的访问其他类的实例域。可能被随意改变,却找不到原因。所以对象状态的改变必须通过方法来实现,保证类的封装性。
2.类之间的关系,依赖(使用),聚合,继承。
3.Date,DateFormat和Calendar。
Date的使用仅限于比较时间的先后。
Dateformat用于格式化date成string,便于显示输出
Calendar用于提取date里的数据,便于操作。
4.Calendar里的year是从0开始的,到11结束。要注意。
5.访问器,更改器,构造器。
6.类里的结构,为了清晰,先类域,实例域,构造器,方法。(不是强制的。)
7.public意味着任何类的任何方法都可以调用。private意味着只有自身能调用。
8.所有的Java对象都是在堆中构造的。构造器总是伴随着new操作符一起使用。
9.调用某个类的方法时,有两个参数。a.add(5)。a是隐式参数,()里的是显式的参数。
10.C++里类的方法可以在类的外面进行定义。Java必须在类的内部。
11.有时候,需要获取或设置实例域的值,类应该提供下面的三项
1.私有的数据域。2.公有的域访问器方法。3.共有的域更改器方法。
12.注意不要写返回可变对象的访问器方法。破坏封装性。如果要返回可变对象的引用,应该首先对它进行克隆。
13.final实例域必须确保在构造器执行之后被设置,否则就不能够再对其进行修改。final 变量只能被赋值一次。
14.类的静态域只有一个,实例域每个对象对应一个。静态域是属于类的,实例域属于对象。
15.静态方法不能向对象进行操作。静态方法只能访问静域。
16.方法的参数。call by 按。。调用。 两种,1.按值调用 2.按引用调用。 C++ 两种都有。&
Java中是采用按值调用。方法得到的是所有参数值的一份拷贝。方法不能修改传递给他的任何变量的内容。
参数两种类型:
1.基本数据类型
不会改变值。
2.对象引用。
拷贝应用指向同一个对象。可以改变对象的值。
总结:
1.一个方法不能修改一个基本数据类型的参数。
2.一个方法可以改变一个对象参数的状态。
3.一个方法不能让对象参数引用一个新的对象。(不能该改变一个引用参数)
17.重载的依据方法的签名:方法名以及参数类型。 不包括返回类型。
18.类中没有构造器,有一个默认的无参的构造器。若有构造器,则系统不会在提供。
19.Java允许在声明域时,直接赋值。C++不允许。
20.Java允许构造器之间的调用,但必须是第一句this()。C++不允许。
21.在new的过程中,先静态,在非静态。里面的顺序,块,成员变量按照声明的顺序进行。但是,构造器总是最后执行。方法不执行。
22.Java不支持析构器。自动垃圾回收GC.
23.类设计技巧
1.一定要保证数据私有化。2.一定要对数据初始化。3.不要再类中使用过多的基本类型。4.不是所有的域都需要独立的域访问器和域更改器。5.将职责过多的类进行分解。6.类名和方法名要能够体现他们的职能。