老师编辑和分享的课堂总结
面向对象
学习要求
1、听不懂没关系,不影响写代码,读着代码就会写了。
2、先会用,在用的过程中逐渐加深对面向对象的理解。
3、利用不断地练习,形成
肌肉记忆
(代码格式)和意识记忆
(要啥给啥)。(开发中重要的思想而不是语法)
引言
面向过程编程(POP --> Process-Oriented Programming)代表:C语言
面向对象编程(OOP --> Object-Oriented Programming)代表:C++、Java
面向切面编程(AOP --> Aspect-Oriented Programming)代表:Java
面向对象的定义
面向对象的思想是把一个项目、一件事情分成更小的项目,或者说分成一个个更小的部分,每一部分负责什么方面的功能,最后再由这些部分组合而成为一个整体。
[找合适的人做合适的事]()
生活中的面向对象和面向过程
举例:想吃烤羊排
面向对象:找个店铺吃
1、去羊排店
2、点一斤羊排
3、等25分钟
4、吃
5、付款走人
面向过程:自己做着吃
1、自己做羊排
1.准备材料(羊、辅料、调料)
2.备料
3.烤箱预热,开烤
4.15分钟翻面一次
5.取出
2、吃
3、洗锅刷碗,打扫卫生
面向对象思想
1、面向对象是基于面向过程的编程思想
2、万物皆对象
3、对象具有唯一性
4、任何对象都具有一定的特征和行为;特征是事物的基本描述,行为是事物的功能
5、类是一组相关的属性和方法的集合,是一个抽象的概念
6、对象是类的具体存在
7、在一组相同或相似的对象中,抽取出共性的特征和行为,保留所关注的部分就是类的抽取
8、类是模板、图纸,通过类创造的对象就是实体
面向对象的优点
- 直观,高效,与人类的思维习惯一致
- 信息隐藏,提高了程序的可维护性和安全性
- 提高了程序的可重用性
总结
面向过程:亲力亲为,自力更生,所有过程都要经历(诸葛亮是怎么死的,累死的)
面向对象:找合适的人做合适的事,直观高效(烤羊排)
类和对象
生活中的类和对象
类 | 对象 |
---|---|
人类 | 马云爸爸,麻花藤(隔壁老王、女朋友) |
狗类 | 史努比,忠犬八公,高飞,斯派克,小白,王可可(单身狗、旺财、金毛、哈士奇) |
英雄类 | Faker的劫,The Shy的卢锡安,霸哥的石头人,马老师的螳螂(盖伦、锤石、EZ) |
化妆品类 | 我的洗面奶(阿玛尼405唇釉,chill小辣椒口红,黛珂水乳,雅诗兰黛粉底液,nars腮红) |
这些对象有什么特点?
人类:
- 马云爸爸,麻花藤
都是特立独行的个体,我们一提起这个个体脑海中就能浮现出他的形象,
- 隔壁老王、女朋友
这些都不是对象,因为每个人都会有自己的隔壁老王,都有自己的女朋友,你脑海中的隔壁老王和你同桌脑海中的隔壁老王是同一个人吗?除非你们是同一个邻居还姓王那就不说了。但你们的女朋友总不会也是同一个吧?所以说,女朋友,隔壁老王都不是对象,你的隔壁老王,你的女朋友才是个对象!!!
狗类:
- 史努比,忠犬八公,高飞,斯派克,小白,王可可
这些都是独一无二的
- 单身狗、旺财、金毛、哈士奇
这些全都是类
Java中的类和对象
类
-
类是对某一类事物的描述,是抽象的、概念上的定义。类是模板,包含了一类事物所共有的特征(属性)和行为(方法)
以人类为例:
属性描述:学号、姓名、性别、年龄、身高、体重、地址、电话、微信、QQ...
行为描述:吃饭、睡觉、上班、学习、娱乐...
对象
对象是类的具体体现([属性和方法]()),是具体的、独一无二的个体。
以班长为例:
属性描述:班长的学号、班长的姓名、班长的身高...
行为描述:班长吃饭、班长睡觉、班长学习...
类和对象的关系
类是对象的抽象,对象是类的具体实现
类的定义
类是一种自定义的数据类型
格式:
class 类名 {
成员变量;// Field
成员方法;// Method
}
class:
定义类的关键字
类名:
大驼峰命名,首字母大写,见名知意
类名就是一种数据类型(自定义引用的数据类型),就是模板的名字
成员变量(属性/特征描述):
定义在类中,方法外的变量,用来描述类的特征
成员方法(行为描述):
定义在类中,用来描述类的功能
class Student {
// 成员变量【Field】
String name;
int age;
char sex;
// 成员方法【Method】
public void eat() {
System.out.println("吃");
}
public void sleep() {
System.out.println("睡");
}
public void play() {
System.out.println("玩");
}
}
对象的创建
参考Scanner的创建,依葫芦画瓢
Scanner sc = new Scanner(System.in);
// 格式:
类名 对象名 = new 类名([参数...]);
Person person = new Person();
对象的使用
参考数组和 Scanner 的使用,依葫芦画瓢
int[] array = new int[10];
array.length
// 注意:这里没有 (),说明这不是方法,那它是什么?我们用它来表示数组的长度,数组的长度是数组的一个属性
Scanner sc = new Scanner(System.in);
sc.nextInt();
格式:
使用成员变量:
对象名.成员变量
使用成员方法:
对象名.成员方法()
// 通过Person类对象person操作name、sex、age属性
// 进行赋值操作
person.name = "张三";
person.age = 25;
person.sex = '男';
// 通过person进行取值操作
System.out.println(person.name);
System.out.println(person.age);
System.out.println(person.sex);
person.eat();
person.sleep();
person.play();
. 的含义是 “的”
person.name:person的name
person.age:person的年龄
person.sex:person的性别
扩展:
如果直接打印对象名,会得到一个对象的【地址】,这个地址包含两部分:1、完整的包名;2、当前对象存储在堆区内存中的空间首地址
对象内存分析图
对象内存分析图 |
---|
总结
没听懂没关系,多敲代码,读着代码就懂了
生活中的类和对象
- 类是事物的统称,是一个抽象的概念
- 对象是事物的表现,是具体的,独一无二的
Java中的类和对象
- 类是对象的抽象,具有公共的特征和行为,对象是类的具体实现,具有唯一的特征和行为
基础数据类型与类和对象
- 类就是一种自定义的数据类型,由类名,属性和方法构成
- 对象就是一种数据类型的数据,由对象名,属性和方法构成
类和对象的定义和使用
- 格式和规范,一定要按照标准
注意
大写开头的都是类 小写开头的都是变量 带()的都是方法
版权属于:不冷
本文链接:https://www.buleng.xyz/archives/37/
转载时须注明出处及本声明