类之间的关系:
依赖:如果一个类的方法操纵另一个类的对象,我们就说一个类依赖于另一个类。
聚合:聚合关系意味着类A的对象包含类B的对象。(有的人也喜欢将聚合称之为“关联”)
继承:没什么好说的。
Java中使用对象变量来完成对一个对象的多次使用,对象变量就如同C++中的指针一样,所以Java中的任何变量都需要初始化后才能使用。
可以显示地将对象变量设置为null,表明这个对象变量目前没有引用任何对象。
变量不会自动地初始化为null,而必须通过调用new或将它们设置为null进行初始化。
在一个源文件.java中,只能有一个共有类,但可以有任意数目的非共有类。
Java中构造器总是伴随着new操作符的执行而被调用,而不能对一个已经存在的对象调用构造器来重新设置实例域的目的。因为,java中的对象都是存在于堆中的,不像C++,对象可存在与堆中或栈中。
在Java程序设计语言中,所有的方法都必须在类的内部定义。
注意不要编写返回引用可变对象的访问器方法。如果需要返回一个可变对象的引用,应该首先对它进行克隆。
一个方法可以访问所属类的所有对象的私有数据。
Java类中的final
Factory方法,是工厂方法,是设计模式中的一种,工厂方法返回类型为基类,具体还要看后边的章节。
Java程序设计总是采用值调用。也就是说,方法得到的所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。
然而,方法参数共有两种类型:
1. 基本数据类型(数字、布尔)
2. 对象引用。(这里对象引用实现的功能如同C++中指针一样。)
如果参数为一个null引用,则对这个参数进行操作会throw exception.
所谓的默认构造器是指没有参数的构造器。如果类中提供了至少一个构造器,但是没有提供默认构造器,则在构造对象时如果没有提供构造参数就会视为不合法。仅当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。
在写构造函数时的一种方法,参数名字和实例域名字相同,但是在初始化实例域时,实例域采用this来引用。
Java中,在构造函数中可以用this来调用该类的另一个构造函数,这样对公共的构造器代码部分只编写一次即可。好蛋疼。
初始化块,奇技淫巧
Import语句应该位于源文件的顶部,但位于package语句的后边。
静态导入:对一些通用的知识可以使用,例如常亮,或数学计算。
包作用域:标记为public的部分可以被任意的类使用;标记为private的部分只能被定义它们的类使用。如果没有指定public或private,这个部分(类、方法或变量)可以被同一个包中的所有方法访问。