一、面向对象编程主要体现以下3个特性:
1.封装性
将数据和对数据的操作封装在一起,通过抽象,即从具体的实例中抽取共同的性质形成一般的概念,比如类
示例:
公共汽车、卡车、轿车等
具有公共物理量:可承载人数、运行速度、发动机的速率、油耗、自重、轮子数目等
具有共同功能:加速、减速、刹车、转弯等
运用面向对象的思想,可以将这些共同具有的功能抽象成方法,物理量是他们的状态描述
我们将这些车依据他们共有的属性和功能抽象成一个机动车类,那么具体的轿车、卡车等就是机动车类的一个实例,即对象
2.继承性
子类可以继承父类的属性和功能
public、private、protected
3.多态性
(一)重载overload:有多个操作具有相同的名称,但这些操作所接受的消息类型必须不同,操作返回的参数不同
(二)和继承有关的多态,是指同一个操作被不同类型的对象调用时可能会产生不同的行为,例如狗和猫都调用哺乳动物的功能——“喊叫”,但是产生的结果不同,狗“喊叫”产生“汪汪...”,猫“喊叫”产生“喵喵...”
二、方法
Java中有两种方法,即重载(overload)和重写(override)
构造方法:方法名必须和类名一致,可以重载,如果类中定义了构造方法,Java将不再提供默认的构造方法
类方法:用关键字static修饰的方法
实例方法:不用static修饰的方法
一个类中如果有类变量和实例变量,有类方法和实例方法
那么类方法只能操作类变量,实例方法都能操作
class B
{
int a; //实例变量
static int b; //类变量
void f(int x,int y)
{
a=x; //合法
b=y; //合法
}
static void g(int z)
{
b=23; //合法
a=z; //非法
}
}