1.面向对象程序开发(OOP)是由程序组成的,每个对象包含对用户公开的特定功能和用户隐藏的实现部分
2.依赖(uses-a):一个类的方法操作另一个类的对象
聚合(has-a):类A的对象包括类B的对象
继承(is-a): 类A拓展于类B,包含一些类B没有的功能
3.面向对象程序设计:首先从设计类开始,然后往每个类中添加方法
4.对象与对象变量的区别:对象变量不是一个对象,没有引用对象,不能使用对象的方法
有两种方法可以使对象变量使用:(1)将对型变量初始化 (2)让对象变量引用一个已存在的对象
5.在一个源文件中,只能有一个共有类,公有类名与Java文件名相同,但可以有任意数目的非公有类
6.类的构造器与类同名,每个类有一个或多个构造器,构造器可以有0个,1个,或多个参数,构造器没有返回值,构造器伴随着new操作一起调用(这点与C++不同)
7.注意不要编写返回引用可变对象的访问器方法
<span style="font-size:18px;"></pre><pre name="code" class="java">class Employee{
Date HireDay;
.....
public Date getHireDay(){
return HireDay;
}
}</span>
Date d = Hanry.getHireDay();
d.setTime(...); d和Hanry.HireDay都会发生变化,因为这俩个值引用同一个对象,破坏了类的封装性
可以改成 return HireDay.clone()即可
8.任何一个类的方法可以访问任何一个该类生成对象的私有域
9.在任何一个对象构造以后属性值不发生改变,可以使用private final String....
10.private static int nextID = 1 ->无论有多少个该类的对象,只会有一个nextID;(静态变量)
静态方法:public static int getNextID(){return nextID} ->可以直接用类名直接调用,与对象无关
11.不能有两个名字相同,参数类型也相同却返回不同类型值的方法
12.一个类可以使用所属包中的所有类,以及其他包中的公有类
public:标记为public可以被任意类使用
private:标记为private的部分只能被定义他们的类使用
default:没有public或private,这个部分可以被同一个包中的所有方法访问
13.类设计技巧:
(1)一定要保证数据私有,为了类的封装性
(2)一定要对数据初始化,可以为数据提供初始值
(3)不要再类中使用过多的基本类型
例:private String street;private String city;private String state ->用class Address代替
(4)不是所有的域都需要独立的域访问器(get)和域更改器(set)
(5)降职责过多的类分解
(6)类名和方法名要能体现他们的职责