面向对象
1. 生活中的面向对象
1.1 面向对象与面向过程的对比
面向对象:
到饭馆点菜,上菜后吃完付帐走人,结束。
找合适的人,做合适的事
面向过程:
买食材,经过复杂的工序吃上想吃的饭菜,收拾残局,结束。
自己亲历亲为
1.2 生活中的类和对象
类:是对事务的一个描述,有属性描述和行为描述。
对象:独立的、唯一的,特殊的个体。
2.Java中面向对象
2.1 Java中定义类的格式
class 类名 {
属性描述;
行为描述;
}
类名采用大驼峰命名法;
属性描述:用于描述当前类对应对象拥有的属性/数据内容【成员变量Field】
例如人类:姓名、年龄、性别……
行为描述:用于描述当前类对应对象拥有的能力【成员方法Method】
例如人类:吃饭、睡觉、打豆豆……
2.2 创建类对象【new对象】
类名 类对象名 = new 类名();
例如:
Scanner sc = new Scanner(System.in);
其中Scanner是一个类,Java工具提供的扫描器类,用于从键盘上扫描获取用户输入的数据。
new Scanner(System.in)【重点】
new:
- 申请内存【堆区】空间
- 清空整个申请空间的所有二进制数据
Scanner(System.in):
这是一个构造方法Constructor。构造方法名字和类名一致,是固定格式。
new 构造方法(); 得到一个对象,构造方法名是类名。
2.3 Java中通过类对象操作成员变量
类对象.成员变量名; (取值操作 / 赋值操作)
int[] arr = new int[10];
system.out.println(arr.length); 获取数组的容量 / 长度
2.4 Java中通过类对象操作成员方法
类对象.成员方法(方法对应参数);
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
float num2 = sc.nextFloat();
3. 构造方法
格式:
public 类名(狗仔方法所需参数) {
成员变量初始化语句;
}
特征:
- 构造方法的名字只能是类名,而且类内其他成员方法不能使用类名作为方法名;
- 构造方法没有返回值。
作用: - 和new关键字联用,方法名==> 类名,告知new关键字当前申请的内存空间需要对应的数据类型是什么【提供类型】;
- 初始化当前new关键字申请内存空间中数据,用于初始化操作。
Java编译器会在程序中为【显示】定义构造方法的情况下,自动补齐一个【无参数构造方法】,方便程序创建当前类对象使用。