面向对象

面向对象

引言

面向过程编程(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、当前对象存储在堆区内存中的空间首地址

对象内存分析图

对象内存分析图
https://ae01.alicdn.com/kf/H60105ec189af4d4fb34aa0ce9d4320dbu.jpg

总结

没听懂没关系,多敲代码,读着代码就懂了

生活中的类和对象

  • 类是事物的统称,是一个抽象的概念
  • 对象是事物的表现,是具体的,独一无二的

Java中的类和对象

  • 类是对象的抽象,具有公共的特征和行为,对象是类的具体实现,具有唯一的特征和行为

基础数据类型与类和对象

  • 类就是一种自定义的数据类型,由类名,属性和方法构成
  • 对象就是一种数据类型的数据,由对象名,属性和方法构成

类和对象的定义和使用

  • 格式和规范,一定要按照标准

注意

大写开头的都是类
小写开头的都是变量
带()的都是方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值