一、类的抽象和封装
类的抽象是指将类的实现和类的使用分离开,实现的细节被封装并且对用户隐藏,称为类的封装。
Java提供了多层次的抽象。类抽象是将类的实现和使用分离。
类的创建者描述类的功能,让使用者明白如何才能使用类。
从类外可以访问的方法和数据域的集合以及预期这些成员如何行为的描述,合称为类的合约。
实现的细节经过封装,对用户隐藏起来,称为类的封装。因为这个原因,类也称为抽象数据类型。
二、面向对象的思考
面向过程的范式重点在于设计方法。面向对象的范式将数据和方法耦合在一起构成对象。使用面向对象范式的软件设计重点在对象以及对对象的操作上。
三、类的关系
1、关联
关联是一种常见的二元关系,描述两个类之间的活动。
2、聚集和组合
聚集是关联的一种特殊形式,代表两个对象之间的归属关系。聚集建模has-a关系。所有者对象称为聚集对象,它的类称为聚集类。而从属对象称为被聚集对象,它的类称为被聚集类。
一个对象可以被多个其他的聚集对象所拥有。如果一个对象只归属于一个聚集对象,那么它和聚集对象之间的关系就称为组合。
四、将基本数据类型值作为对象处理
基本数据类型值不是一个对象,但是可以使用JavaAPI中的包装类来包装成一个对象。
出于对性能的考虑,在Java中基本数据类型不作为对象使用。因为处理对象需要额外的系统开销,如果将基本数据类型当作对象,就会给语言性能带来负面影响。然而,Java中许多方法需要将对象作为参数。
Java将基本数据类型并入对象或包装成对象,为基本数据类型提供了Boolean、Character、Double、Float、Byte、Short、Integer和Long等包装类。这些包装类都打包在java.lang包里。
Boolean类包装了布尔值true或者false。
java.lang.Integer | java.lang.Double |
-value:int | -value:double |
+MAX_VALUE:int | +MAX_VALUE:double |
+MIN_VALUE:int | +MIN_VALUE:double |
+Integer(value:int) | +Double(value:double) |
+Integer(s:String) | +Double(s:String) |
+byteValue():byte | +byteValue():byte |
+shortValue():short | +shortValue():short |
+intValue():int | +intValue():int |
+longValue():long | +longValue():long |
+floatValue():float | +floatValue():float |
+doubleValu |