面向对象
1.生活中的面向对象
需求:
我想吃烤羊排
找一个烧烤店吃
1. 选一个店铺,私烤者馕坑烤肉
2. 找一个座位,点餐,馕,烤羊肉串,一斤羊排,啤酒2瓶
3. 等
4. 吃
5. 结账走人
自己做着吃
1. 准备材料
盐滩羊羊排2斤,葱姜蒜,洋葱,孜然粉,烧烤料,辣椒面
2. 羊排切小段,葱姜蒜水,盐,洋葱,腌制30分钟
3. 烤箱预热190度 5分钟,烤制 210度 25分钟 15分钟翻面
4. 取出
5. 吃,蘸料吃
6. 洗锅,刷碗
需求:
我想吃牛肉面
找个店铺吃
1. 找一个兰州牛肉面
2. 点一份大份牛肉面+肉
3. 等
4. 吃
5. 结账走人
自己做着吃
1. 买牛肉
牛肉块 香料 八角,桂皮,香叶,花椒,麻椒,小茴香
2. 牛肉焯水,小葱,生姜,料酒
3. 炒香料
炒葱姜蒜
倒入生抽,老抽
香料全下
倒入牛肉,翻炒
倒入水,刚刚好没过牛肉
黄豆酱一勺
煮15分钟,放入7-8冰糖
煮15分钟,放入盐
20分钟出锅
4. 牛肉就可以为所欲为
牛肉面,牛肉饭,土豆牛肉...
生活中的面向对象和面向过程:
面向对象:
找合适的人,做合适的事
面向过程:
亲力亲为,自力更生,所有的过程都是经历
2.类和对象
类:
对于一类事物的统称,包含对应属性描述和行为描述
以人类为例
属性描述:身高体重样貌...
行为描述:吃饭睡觉打豆豆...
对象:
具体的、独立的、唯一的个体
【小总结】
生活中面向对象和面向过程的例子
面向对象 直观,高效,并且是符合我们生活案例的一种方式
面向过程 较为繁琐的方式,但是面向对象的基础就是面向过程。
类和对象
类 统称的概念
对象 唯一的
3. Java中定义类的格式【难点】
3.1 格式分析
格式:
class 类名 {
属性描述;
行为描述;
}
类名:
要求符合大驼峰命名法,见名知意
类名这里可以认为是一个数据类型名,自定义数据类型
属性描述:
描述当前类有哪些属性
例如:
人类的身高体重,年龄姓名
行为描述:
描述当前类有哪些行为
例如:
人类的吃饭行为,睡觉行为,打游戏行为
3.2 自定义完成 Person 类
/**
* 自定义Person类,人类
* @author Anonymous
*
*/
class Person {
/* 属性描述 【成员变量 Field】*/
// 姓名属性描述 这里暂时不需要初始化 只是描述当前类有哪些属性
// String是字符串类型,name成员变量
String name;
// 年龄描述
// int是数据类型 age成员变量
int age;
// 性别描述
// char是数据类型 gender成员变量
char gender;
/*
* 行为描述 【成员方法 Method】
* 一下方法目前不需要static 不要问
*/
// 吃饭行为描述
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扫描器
Scanner sc = new Scanner(System.in);
赋值号左侧:
Scanner:
数据类型名,Scanner类,【类名】。
sc:
sc 可以认为是Scanner类的对象,sc对象名,同时也是一个【引用数据类型变
量】
赋值号右侧:
new:
1. 在内存的【堆区】申请当前对象所需的内存空间
2. 擦除整个内存空间中的所有数据,所有的内存空间中二进制位都是0
Scanner(System.in);
和类名同名的方法
目前 类名();即可
格式:
类名 对象名 = new 类名();
4.2 创建 Person 类对象
/*
* 这里创建一个Person对象
* 格式:
* 类名 对象名 = new 类名();
*
* 这里创建了一个Person类的对象,对象名 saolei
*/
Person saolei = new Person();
System.out.println(saolei);
/*
* com.qfedu.b.Object.Person@15db9742
* com.qfedu.b.Object 完整的包名
* Person 类名
* @ 所在内存位置
* 15db9742 是当前Person类的对象,saolei所在【堆区】内存空间首地址
*/
4.3 使用成员变量方式
/*
* 通过Person类的对象, saolei操作name成员变量,age成员变量,gender成员变量
* 进行赋值操作
*
* . 的
*/
saolei.name = "海航中路彭于晏";
saolei.age = 16;
saolei.gender = '男';
/*
* 通过Person类的对象 saolei取值成员变量内容
*/
System.out.println("Name:" + saolei.name);
System.out.println("Age:" + saolei.age);
System.out.println("Gender:" + saolei.gender);
4.4 使用成员方法
/*
* 格式:
* 类对象.成员方法(所需参数);
* . 的
*/
saolei.eat("鲱鱼罐头鱼丸");
saolei.sleep();
saolei.game();
5.收获
拼搏到无能为力,坚持到感动自己
1.今天学习了面向过程和面向对象的概念,通过引入现实生活中的例子,更好地理解到了两者之间的区别
2.理解了类和对象的概念
3.了解了如何在程序中创建一个类,并且实例化成对象并调用类的方法和属性