(10)Java笔记10之类和对象

1、类之间的关系包括:依赖、聚合、继承。
依赖(uses-a):如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。
聚合(has-a):意味着类A的对象包含类B的对象。
继承(is-a):表示特殊和一般关系。


2、Java中并不是所有的类具有面向对象的特征,如Math类。


3、构造器的名字应该与类名相同。


4、一个对象变量并没有实际包含一个对象,而仅仅引用一个对象。


5、new操作符的返回值也是一个引用。


6、可显示地将对象设置为null,表明这个对象变量目前没有引用任何对象。


7、如果想看到不同地区程序的输出,应该在main方法的第一行中添加如下代码:
Local.setDefault(Locale.ITALY);


8、文件名必须与public类的名字相匹配,在一个源文件中,只能有一个公有类,但可以有任意数目的非公有类。


9、构造器与其他方法有一个重要的不同,构造器总是伴随着new操作符的执行被调用,而不能对一个已经存在的对于徐昂调用构造器来发到重新设置实例域的目的。


10、所有Java对象都是在堆中构造的,构造器总是伴随着new操作符一起使用。


11、final实例域:构建对象时必须初始化这样的域。即必须确保在每一个构造器执行之后,这个域的值被设置,并且在后面的操作中,不能够再对它进行修改,在对象构建后,没有setName()方法。
对于可变类而言,仅仅意味着存储在该变量中的对象引用在对象构造之后不能被改变。

12、静态方法是一种不能向对象实施操作的方法,如Math类不使用任何Math对象,Math.pow(x,a);


13、不能在静态方法中访问实例域,但是静态方法可访问自身类中的静态域。


14、使用静态方法的情况:
①一个方法不需要的访问对象状态,其所需参数都是通过显示参数提供。
②一个访问只需要访问类的静态域。


15、Java采用的是值调用,即方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。


16、Java程序设计中,方法参数的使用情况:
①一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)。
②一个方法可以改变一个对象参数的状态。
③一个方法不能实现让对象参数引用一个新的对象。


17、方法签名:方法名和参数类型,返回类型不是方法签名的一部分。


18、如果在编写一个类时没有编写构造器,那么系统就会提供一个默认构造器,这个默认构造器将所有的实例设置为默认值。


19、Java中的代码块,首先运行初始化块,然后才运行构造器的主体部分,这种机制不是必须的,也不常见。


20、在类第一次加载时,将会进行静态域的初始化,与实例域一样,除非将它们显示地设为其他值,否则默认的初始值是0、false、或null。所有竟然静态始化语句以及静态初始化块都将依照类定义的顺序执行。


21、可为任何一个类添加finalize方法,finalize方法将在垃圾回收器清除对象之前调用,在实际应用中,不要依赖于使用finalize方法回收任何短缺的资源,这是因为很难知道这个方法什么时候调用。


22、使用包的主要原因是确保类名的唯一性。假如两个程序员不约而同地建立了Employee类,只要将这些类放置在不同的包中,就不会产生冲突。


23、只能使用*号导入一个包,而不能使用import java.*或者import java.*.*导入以java为前缀的所有包。


24、如果要使用两个包中的同名变量,同时这两个变量都需要使用,为了不让编译器无法确定程序使用的是哪一个类,可以在每个类名加上完整的类名。


25、JavaSE5.0起,import语句不仅可以导入类,还增加了导入静态方法和静态域的功能。


26、当将类放在不同的包中时,仍要从基目录中编译和运行类,例如:
javac com/mycompany/P.java
java  com.mycompany.P


27、如果没有指定public和private,这个部分(类、方法或变量)可以被同一个包中的所有方法访问。


28、文档注释:javadoc将从以下几个特性中抽取信息:包;公有类和接口;公有的和受保护的方法;公有的和受保护的域。


29、Java不对局部变量进行初始化,但是会对对象的实例域进行初始化,而我们应该显示地初始化所有的数据。

你可能感兴趣的:((10)Java笔记10之类和对象)