第四章 对象和类

来源:互联网 发布:廊坊网络推广 编辑:程序博客网 时间:2024/05/29 13:43

1.根据经验 ,只要需要返回指向可变数据字段的拷贝就使用clone  (P107)

2. 类与类常见的关系有:

   A依赖(“use-a”) 如果一个类的方法操作了另一个类中的对象,那么这个类就依赖于另一个类

   B聚合(“has-a”) 聚合关系意味着类A的对象包涵类B的对象

   C继承(“is-a”)

3 对象变量并不包涵对象,它只是指向一个对象 java中,任何变量的值都是指向存储

在别处对象的一个引用

4 强烈建议你始终把你的实例字段标志为private

5. 总的来说: 有下面的情况存在就应选用私有方法

   A 与类的使用者无关的方法

   B如果类的实现改变了,就难以维护的方法

6 把那些在对象生命周期内不发生改变的字段标志为final是个不错的方法。如果一个类的    所有字段都是final的,那么这个类就是不可改变的

7 静态方法是不向对象施加操作的方法。因为静态方法并不操作对象,所有我们不能用一个静态方法来访问实例字段。但是静态方法可以访问自身中的静态字段

8 每个类都可以有一个main方法。这在对类进行单元测试时是一个很方便的技巧.

9 Java 语言总是使用传值调用。这也意味着方法得到的只是所有参数值的拷贝。因此,方法不能修改传递给他的任何参数变量的内容 但可以改变对象参数的值 见(P115)

10 Java语言总是使用传值调用,这也意味着方法得到的只是所有参数值的拷贝。因此,方法不能修改传递给他的任何参数变量的内容

11 实现改变对象参数状态的方法很容易,方法得到对对象引用的一个拷贝。原来的对象变量和这个拷贝所指向的是同一个对象

12 Java 利用方法可以做到和不可以做到的几种情况:

   A 方法不能修改基本类型(即数字或布尔值)的参数

   B 方法可以修改对象参数的状态

   C 方法不能让对象参数指向新的对象

13 当多个方法具有相同的名字而不含有相同的参数时,便产生了重载,Java允许对任何方法进行重载,因此要完整描述一个方法,既要指定方法的名称,又要指定方法的参数类型。这称为方法的原形 。返回值类型不是原形的一部分,也就是说,不能有这样的两个方法。他们具有相同的名称和参数类型,但是返回值类型却不相同!

14 在字段和局部变量间有着重要的区别,我们必须对方法中的局部变量显式的进行初始化,但如果没有对类中的字段进行初始化,他们会被自动初始化为默认值(对象引用为null

15 牢记:只由在类中没有其他构造器时。系统才会提供默认构造器。

16 如果构造器的第一个语句具有形式this(….),那么这个构造器将调用同一个类中的其他构造器 (P122)

17 初始化数据字段的方式:

   A在构造器中设置值

   B 在声明中赋值

   C 初始化块。类声明中可以包含任意多的代码块。只要构造了类的对象。这些代码块就会执行 (P123)

18 调用构造器后详细的执行过程:

   A 初始化所有数据字段为默认值

   B 按照在类声明中出现的次序依次执行所有字段初始化语句和初始化块

   C 如果构造器在第一行代码调用了另一个构造器。则执行被调用的构造器主体

   D 执行构造器主体

19 再次提醒注意的是:编译器对文件操作,而Java解析器装载类

20 类设计技巧:

   A 一定要让数据私有

   B 一定要初始化数据

   C不要在类中使用过多的基本类型

   D 并非所有的字段都需要独自的字段访问方法和更改方法

   E 为类定义使用标准格式

   F 分解职责太多的类

   G 让类和方法的名字反映他们的职责 按照惯例,一般用名词(Order)、前面加形容词的名词(Rushorder)、前面有动名词修饰的词(BillingAddress)为类命名,而对于方法。访问方法以小写get开始(getSalary),更改方法以小写set开始(setSalary)

原创粉丝点击