1. 生活中的面向对象
需求: 我想吃烤羊排
A. 找一个烧烤店吃
1. 选店铺
2. 找座位并点餐
3. 等待烤制
4. 吃
5. 结账走人
B. 自己做着吃
1. 买羊排, 买材料
2. 准备材料
3. 做羊排, 放入烤箱
4. 取出
5. 吃
6. 洗锅洗碗
生活中面向对象和面向过程
面向对象:
找合适的人做合适的事
面向过程:
亲力亲为, 自力更生, 所有的过程都是经历
2. 类和对象
类 | 对象 |
---|
人类 | 川普, 奥巴马, 普京 |
狗类 | 王可可, 高飞, 史努比 |
手机类 | 我的华为Mate 30Pro, 我曾经的Iphone8Plus |
电脑类 | 我的小米游戏本, 我曾经的ThinkPad |
类:
对于一类事物的统称, 包含对于属性描述和行为描述
以人类为例:
属性描述:
身高, 体重, 样貌....
行为描述:
吃饭, 睡觉, 上班, 学习, 游戏....
对象:
具体的, 独立的, 唯一的个体
3. Java中定义类的格式【重点】
3.1 格式分析
格式:
class 类名 {
属性描述;
行为描述;
}
类名:
要求符合大驼峰命名法, 见名知意
类名这里可以认为是一个数据类型名, 自定义数据类型
属性描述:
描述当前类有哪些属性
例如:
人类的身高体重年龄姓名...
行为描述:
描述当前类有哪些行为
例如:
人类的吃饭行为, 睡觉行为, 游戏行为...
3.2 自定义完成Person类
class Perosn {
String name;
int age;
char gender;
public void eat(String food) {
System.out.println("吃" + food);
}
public void sleep() {
System.out.println("月亮不睡你不睡, 你是秃头小宝贝");
}
public void game() {
System.out.println("WOT World Of Tank 坦克世界!");
}
}
4. Java中创建对象的格式【重点】
4.1 模仿
格式:
Scanner扫描器
Scanner sc = new Scanner(System.in);
赋值号左侧:
Scanner:
数据类型名, Scanner类, 【类名】
sc:
可以认为是Scanner类的对象, sc是对象名, 同时也是一个【引用数据类型变量】
赋值号右侧:
new:
1. 在内存的堆区申请当前对象所需的内存空间
2. 擦除整个内存空间中的所有数据, 所有的内存空间中二进制位都是0
Scanner(System.in):
和类名同名的方法
目前 类名();即可
格式:
类名 对象名 = new 类名();
4.2 创建Person类对象
Person saolei = new Person();
System.out.println(saolei);
4.3 再模仿
int[] arr = new int[10]
arr.length???
这里没有小括号, 得到的是数组的容量, 是一个属性
操作类内的成员变量
类对象.成员变量名 可以赋值操作, 可以取值操作
4.4 使用成员变量方式
saolei.name = "航海中路彭于晏";
saolei.age = 16;
saolei.gender = '男';
System.out.println("Name:" + saolei.name);
System.out.println("Age:" + saolei.age);
System.out.println("Gender:" + saolei.gender);
4.5 再再模仿
Scanner sc = new Scanner(System.in);
sc.nextInt(); 通过Scanner类的对象 sc调用nextInt();
sc.nextFloat();
sc.nextDouble();
sc.nextLine.charAt();
. 的
格式:
类对象.成员方法(所需参数);
4.6 通过类对象使用成员方法
saolei.eat("鲱鱼罐头鱼丸");
saolei.sleep();
saolei.game();
4.7 代码展示
package com.qfedu.Object;
class Person {
String name;
int age;
char gender;
public void eat(String food) {
System.out.println("吃" + food);
}
public void sleep() {
System.out.println("月亮不睡你不睡, 你是秃头小宝贝");
}
public void game() {
System.out.println("WOT World Of Tank 坦克世界");
}
}
public class Demo1 {
public static void main(String[] args) {
Person saolei = new Person();
System.out.println(saolei);
saolei.name = "航海中路彭于晏";
saolei.age = 16;
saolei.gender = '男';
System.out.println("Name:" + saolei.name);
System.out.println("Age:" + saolei.age);
System.out.println("Gender:" + saolei.gender);
saolei.eat("鲱鱼罐头鱼丸");
saolei.sleep();
saolei.game();
}
}