面向对象
一 、面向过程与面向对象的区别:
前者是一种谓语和宾语的关系;后者是一种主语和谓语的关系 。
二、面向对象的三个特征:
1.封装 2.继承 3.多态
三、类与对象:
对象又称作实例,是实际存在的该类事物的每个个体。类是对某一类事物的描述,是抽象的、概念上的 定义。 *面向对象的设计的重点是类的设计。
四、对象的比较:
1 “= =”运算符与equals()方法的区别: 前者辨别实质是否相等;后者辨别长相是否相等。
五、 实现类的封装性:
1不能让外面的类随意修改一个类的成员变量;2在定义一个类的成员(包括变量和方法),使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法
调用,而不能被其他的类中的方法所调用; 3为实现封装性,常将类的成员变量
声明为private,再通过public的方法来对这个变量进行访问。对一个变量的操作,一般都有 读取和赋值操作,我们一般定义两个方法来实现这两种操作,即:getXxx()与setXxx();
内部类: 1、在类中直接定义的内部类??*嵌套类可直接访问嵌套他的类的成员,包括private成员,但嵌套类的成员却不能被嵌套它的类直接访问; * 在内部类对象保存了一个对外部类对象的引用,当内部类的成员方法中访问某一变量时,若在该方法和内部类中都没有定义过这个变量,内部类中对this 的引用会被传递给那个外部类对象的引用; * 若用 static 修饰一个外部类,这个类就相当于是一个外部定义的类,所以 static 的内部类中可声明static 成员,但非static 的内部类中的成员是不能声明为 static 的,static 的内部类不能再使用外层封装类的非 static 的成员变量。
例:若函数的局部变量,内部类的成员变量,外部类的成员变量重名,则应该按下面的程序代码所使用的方式来明确指出我们真正要访问的变量。
public class Outer
{
private int size;
public class inner
{
private int size;
public void doStuff(int size)
{
size++; //应用doStuff函数的形参
this.size++; //引用Inner类的成员变量
Outer.this.size++; // 引用Outer类的成员变量
}
}
}