- 面向对象编程主要有以下三个特性:
1.封装性
2.继承性
3.多态性
- 类体分为两部分:变量的声明和方法的定义。在变量声明部分声明的变量被称为类的成员变量,在方法体中声明的变量和方法的参数被称为局部变量
- 两种变量的类型可以是Java中的任何一种数据类型,包括对象和接口
- 不同的是,成员变量在整个类内都有效,局部变量只在声明它的方法内有效。
- 方法参数在整个方法内有效,方法的局部变量从声明他的位置之后开始有效
- 成员变量的有效性和他在类中书写的先后位置无关
- 成员变量又分为实例变量和类变量。在声明成员变量时,用关键字static给予修饰的变量称为类变量(静态变量),否则称为实例变量
- 需要注意的是,如果局部变量的名字与成员变量的名字相同,则成员变量被隐藏,即这个成员变量在这个方法内暂时失效。如果想要在该方法中使用被隐藏的成员变量,必须使用this关键字。
- Java中存在两种多态,即重载和重写
- 方法重载是多态性的一种,所谓的功能多态性是指可以向功能传递不同的消息,以便让对象根据相应的消息来产生相应的行为。
- 方法的重载的意思是,一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或是参数个数不同,或是参数类型不同,
- 构造方法是一种特殊的方法,相当于c++中的构造函数,它的名字必须与它所在的类的名字完全相同,而且构造方法也是可以重载的
- 在声明方法时,方法类型前不加关键字static修饰的是实例方法,加static修饰的是类方法(静态方法)
- 值得注意的是
①对成员变量的操作只能放在方法中,方法可以对成员变量和该方法体中声明的局部变量进行操作。在声明类的成员变量时可以同时赋予初值
②实例方法既能对类变量操作也能对实例变量操作,而类方法只能对类变量进行操作
③一个类中的方法可以互相调用,实例方法可以调用该类中的其他方法;类中的类方法只能调用该类的类方法,不能调用实例方法 - 在创建每一个类时都有一个默认父类object,object中包含了equals方法,该方法可以判断两个对象是否相等,即只判断值是否相同,而“==”判断的是两者内存是否相同,但通常情况下如果不对equals方法进行重写的话,二者的作用将会是相同的。
- 声明对象后此时的对象是没有实例化的空对象,必须再进行为对象分配内存的步骤,即为对象分配实体。