面向对象
概述
面向对象学习的主线
1.Java类及类的成员
- 属性
- 方法
- 构造器
- 代码块
- 内部类
2.面向对象的三大特征
- 封装性
- 继承性
- 多态性
- 抽象性 (若提起三大特性,则前三个,若四大特性,则再加一抽象性)
3.其他关键字
- this
- super
- static
- final
- abstract
- interface
- package
- import
面向过程和面向对象的对比
- 面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。
- 面向对象:强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
面向对象的两个要素
- 类 (对一类事物的描述,是抽象的、概念上的定义)
- 面向对象程序设计的重点是类的设计
- 设计类,就是设计类的成员。
- 对象 (是实际存在的该类事物的每个个体,因而也称为实例)
类的创建和使用
设计类
- 属性 = 成员变量 = 字段 = field
- 方法 = 成员方法 = 函数 = method
- 暂略
类和对象的使用
- 创建类,设计类的成员
- 创建类的对象
- 通过对象.属性,对象.方法 调用对象的结构
//创建类,设计类的成员
public class Person{
//属性1
String name;
//属性2,并赋值为1
int age = 1;
// 方法1
public void eat(){
System.out.println("吃饭中);
}
// 方法2
public int getage(){
System.out.println("我的年龄是" + age);
}
}
public class PersonTest {
public static void main(String[] args) {
//2. 创建Person类的对象
Person p1 = new Person();
//3.1 调用属性 对象.属性
p1.name = "Tom";
//3.2 调用方法 对象.方法
p1.eat();
}
}
同类多对象的独立性(非static)
如果创建了一个类的多个对象,则每个对象都独立的拥有一套类的属性。(非static的)
public class PersonTest {
public static void main(String[] args) {
//创建p1对象
Person p1 = new Person();
//修改p1对象name属性
p1.name = "Tom";
//再新建一个p2新对象
Person p2 = new Person();
//修改p2对象name属性
p2.name = "Jack";
// 同时输出两对象名字
System.out.println(p1.name);//Tom
System.out.println(p2.name);//Jack
}
}
也就是修改一个对象的属性值a,则不影响另一个对象属性a的值
对象的内存解析
Person p1 = new Person();
p1.name = "Tom";
Person p2 = new Person();
p2.name = "Jack";
System.out.println(p1.name);//Tom
System.out.