面向对象的世界:程序 = 对象 + 消息
三大特征:1.封装:类与对象
2.继承:基类与派生类
3.多态:抽象类与接口
优点:可重用(通用代码)、可扩展(插入新的功能,不需要改变原有的代码)、可维护(代码结构优 良,接口清晰)
类中定义的属性(域)与方法(操作):
类和对象都有属性和操作,属性是事物静态特征的抽象,操作是事物动态特征的抽象。

类中的域变量和方法存在以下关系 :
1.类中定义的域变量可以被类中所有的方法所访问。2.方法中的形式参数和定义的局部变量的作用域仅限于方法,局部变量在使用前必须进行赋值初始化。如果局部变量和类中的属性变量重名,则在方法中 对同名变量改变的是局部变量 。
3.类中定义的方法可以进行递归调用
对象(object)与对象引用:
创建对象: new FighterPlane(); (分配在堆上)
声明一个对象引用: FighterPlane fp ; (分配在栈上)

初始化对象引用:FighterPlane
fp = new FighterPlane()
实质是将新创建的FighterPlane对象的地址赋给对象引用fp,从此fp与
该对象关联,通过fp即可操纵该对象
对象内存空间分布:

对象作为参数的特点:
普通数据类型作为参数传递是值传递,而对象是引用传递。 当对象作为参数传递时,传递的 是对象的地址。
类成员属性和方法的其它修饰符 :
static:1、用static修饰符修饰的数据成员是不属于任何一个类的具体对象,而是属于类的静态数据成员。2、它被保存在类的内存区的公共存储单元中,而不是保存在某个对象的内存区中。因此,一个类的任何对象访问它时,存取到的都是相同的数值,3、 访问方式为通过类名加点操作符来访问,也可通过对象引用来访问
静态数据成员仅在类加载时进行初始化,且只执行一次初始化


输出结果:2
Static修饰的方法有如下特点:
1、static方法是类方法,但可以被所有对象所访问,引用这个方法时,可以使用对象名做前缀,也可以使用类名做前缀。
2、static方法内部的代码,只能访问类中的static属性或方法,不能直接访问类中的非static属性或方法(因为那是对象方法),但非static方法(对象方法)可以访问static数据成员。
3、main方法是特殊的静态方法,是Application程序入口点,必须写成public static void main(String args[])的形式。
静态代码块: 一个类中可以使用不包含在任何方法体中的静态代码块,当类被装载时,静态代码块被执行,且只被执行一次,静态代码块经常用来对类中定义的属性进行初始化。

程序输出结果为value=3
final:
1、final修饰属性,则属性为常量;
2、如果修饰方法,则方法称为最终方法,在子类当中不能被覆盖(见多态一节),可防止任何继承类修改此方法,保证了程序的安全性和正确性。
public Constant{
static final int OK=0;
static final int CANCEL=1;
.. .. ..}
3、可以在Constant类中定义一些静态常量,在别的类当中这样来使用:Constant.OK。也可定义对象的属性常量