admin 管理员组文章数量: 887021
对象
面向对象
引言
面向过程编程(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中的类和对象
- 类是对象的抽象,具有公共的特征和行为,对象是类的具体实现,具有唯一的特征和行为
基础数据类型与类和对象
- 类就是一种自定义的数据类型,由类名,属性和方法构成
- 对象就是一种数据类型的数据,由对象名,属性和方法构成
类和对象的定义和使用
- 格式和规范,一定要按照标准
注意
大写开头的都是类 小写开头的都是变量 带()的都是方法
本文标签: 对象
版权声明:本文标题:对象 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1693596756h231424.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论