面向对象1
目录
1. 面向对象和面对过程
吃烤羊排
【面向对象】:1. 驱车去往烤羊排店铺
2. 点一份烤羊排
3. 吃
4. 埋单
5. 返程
【面向过程】:1. 买羊排
2. 准备调料
3. 羊排整扇焯水,撇去浮沫
4. 料汁
5. 烤箱 预热 190 度 3分钟
6. 羊排刷料放入烤箱 上下火 200度 15分钟
10分钟 在撒上孜然粉
7. 吃
8. 洗锅,洗烤箱,收拾
面向对象:找合适的人,做合适的事
面向过程:自己亲力亲为
2. 类和对象
| 类 | 对象 |
| 人类 | 马云、马化腾、周杰伦... |
| 狗类 | 哮天犬... |
| 车类 | 劳斯莱斯幻影、领克01... |
类:一类事物的统称,具备对应事物的行为描述和属性描述
对象:类对应的具体的,唯一的,独立的个体
3. Java中定义类的格式
class 类名 {
属性描述 【成员变量 Field】
行为描述 【成员方法 Method】
}
类名:
需要按照大驼峰命名法命名,同时要求见名知意
属性描述:
描述当前类有哪些属性,例如:
人类 姓名,年龄,性别
汽车类 发动机型号,变速箱型号,底盘配置...
行为描述:
描述当前类有哪些行为,例如:
人类 吃饭,睡觉,打豆豆
汽车类 飙车,倒车
3.1 定义类完成属性描述
/*
自定义类,Person 类。复合类型
定义了一个数据类型,Person 类型。
*/
class Person {
// 属性描述【成员变量】
/*
姓名属性描述,name 成员变量对应的数据类型为 String 类型。
描述 Person 类有 姓名属性,不带有任何的数据信息,因为数据信息
需要 Person 类对象承载。
*/
String name;
/*
年龄属性描述,age 成员变量对应的数据类型为 int 类型
*/
int age;
/*
性别属性描述,gender 成员变量对应的数据类型为 char 类型
*/
char gender;
}
3.2 定义类完成行为描述
// 行为描述【成员方法】
/*
吃饭行为描述,使用方法来完成,方法的参数是 String 字符串类型
*/
public void eat(String food) {
System.out.println("我今天吃" + food);
}
/*
睡觉行为描述,无参数方法
*/
public void sleep() {
System.out.println("我要和床一起到天荒地老");
}
/*
写代码行为描述,无参数方法
*/
public void coding() {
System.out.println("键盘敲烂,月薪过万!");
}
4. Java中创建对象和操作成员
4.1 创建对象
格式:
类名 类对象名 = new 类名();
类名() ==> 构造方法 Constructor
例如:Scanner sc = new Scanner(System.in);
解释:
Scanner: 是一个类,首字母大写,Java中键盘录入数据扫描器类。
sc: Scanner 类变量,学名【Scanner 类对象】。
new:【有new 就有 堆】
1. 在内存堆区根据当前数据类型所需,申请对应大小的内存空间
2. 擦除申请空间中的所有数据。
Scanner(XXX):
方法,构造方法 Constructor 方法名是类名。
【作用】
1. 提供数据类型,方法名是【类名】,告知 new 需要创建的是哪一个类的对象,需要多少空间
2. 用于赋值当前内存空间中的数据内容。目前不涉及。
/*
类名 类对象名 = new 类名();
创建了一个 Person 类对象,对象名 p1
*/
Person p1 = new Person();
/*
Person@15db9742
Person 当前数据对应的数据类型,为 Person 类型
@ 在哪里
15db9742 当前对象在内存堆区的地址。
*/
System.out.println(p1);
4.2 通过对象操作成员变量
例如:
int[] arr = new int[10];
arr.length ===> arr数组【的】容量
Java中目前通过类对象操作使用成员变量的方式
类对象.成员变量
赋值 or 取值。
// 通过类对象操作成员变量
// 给予成员变量赋值操作 . 的
p1.name = "张三";
p1.age = 16;
p1.gender = '男';
// 取值成员变量数据 . 的
System.out.println("Name:" + p1.name);
System.out.println("Age:" + p1.age);
System.out.println("Gender:" + p1.gender);
4.3 通过对象操作成员方法
例如:
Scanner sc = new Scanner(System.in);
int num1 = sc.nextInt();
float num = sc.nextFloat();
sc 是 Scanner 类对象,是一个对象名
. 表示:的
nextInt() nextFloat(); 方法。
格式: 类对象.方法名(实际参数);
// 通过类对象调用成员方法
// . 的
p1.eat("烤羊排");
p1.sleep();
p1.coding();
5. 类对象内存分析图
