面向过程的程序设计方法是先考虑算法,其次考虑数据存储结构,而面向对象的程序设计方法(OOP)调换了这个次序,将数据放在第一位,然后再考虑操作数据的算法。由类构造对象的过程成为创建类的实例,封装、继承概念。
对象的三个主要特征:1)对象的行为 2)对象的状态 3)对象标识
类之间的关系:1)依赖 2)聚合 3)继承
Java使用构造器构造新的实例,构造器是一种特殊的方法,用来构造并初始化对象,构造起的名字应该与类名相同。
一个对象变量并没有实际包含一个对象,而仅仅是引用一个对象。Java中,任何对象变量的值都是对存储在另外一个地方的一个对象的引用。new操作符的返回值也是一个引用。局部变量不会自动地初始化为null,而必须通过调用new或将它们设置为null进行初始化。所有的Java对象都存储在堆中,当一个对象包含另一个对象变量时,这个变量依然包含着指向另一个堆对象的指针。Java中如果使用一个没有初始化的指针,运行系统将会产生一个运行时错误。在Java中,必须使用clone方法获得对象的完整拷贝。
关于时间表示,标准Java类库分别包含两个类:一个是用来表示时间点的Date类,一个是用来表示大家熟悉的日历表示法的LocalDate类。
在一个源文件中,只能有一个公有类,但可以有任意数目的非公有类。
构造器与其他普通的方法有一个重要的不同之处:构造器总是伴随着new操作符的执行被调用而不能对一个已经存在的对象调用构造器来达到重新设置实例域的目的,所有的Java对象都是在堆中构造的。注意:不要在构造器中定义与实例域重名的局部变量,这些变量屏蔽了同名的实例域。这些变量也只能在构造器内部访问。
隐式参数与显示参数,在每个方法中,关键字this表示隐式参数,把实例域与局部变量明显地区分开来。注意:不要编写返回引用可变对象的访问器方法。
一个方法可以访问所属类的所有对象的私有数据。
final实例域在构建对象时必须进行初始化,并且在后面的操作中,不能够再改变它的值。final修饰符大都应用于基本类型域或不可变类的域。