理解面向对象和面向过程的区别?
盖房子
过程:设计结构,办手续,买砖头,买水泥,打地基,砌墙,封顶,装饰设计,买装修材料,装修,入住
使用2种语言来描述盖房子的这件事情,C, java
C语言实现盖房子这件事情:- 面向过程的语言
我要设计
我要去办手续
我要买砖头
我要买水泥
我要打地基
我要砌墙
我要封装
我要装修设计
我要买材料
我要装修
C面向过程,以过程为核心,每一个过程/流程都需要自己亲力亲为的去实现,
Java - 面向对象,以对象为核心,不需要关心每一件事情具体的步骤,以结果为导向
包工头:设计结构,买砖头,买水泥,打地基,砌墙,封顶
装修公司:装饰设计,买装修材料,装修
我:办手续,入住
吃饭:
买菜,洗菜,炒菜,做饭,装米饭,洗碗
面向对象:我去饭店,我负责吃,
面向对象:以结果为中心,不关注具体的过程,更符合现代人的思考方式
在计算机中奖所有内容都当作对象来看待
静态的属性:描述一个对象的固有的特征, - 一般是一个名词,姓名:冷萌, 性别是女的,身高1.8M, 头发是红色的,
动态的属性:能干嘛?一般是一个动词。吃饭,睡觉,运动,唱歌
小狗:
静态属性 - 属性:性别:母,品种:藏獒,颜色:green, 年龄:33
动态属性 - 方法:吃饭,叫,狗刨,大便
33号:
属性: - 名词 - 固有的特征
职业:xxx, 编号:xxx, 姓名:xxx , 性别:xxx
方法: - 动词-能干嘛
写代码, 吃饭,洗澡, 喝水
23号:
属性: - 名词 - 固有的特征
职业:xxx, 编号:xxx, 姓名:xxx , 性别:xxx
方法: - 动词-能干嘛
写代码, 吃饭,洗澡, 喝水
13号
属性: - 名词 - 固有的特征
职业:xxx, 编号:xxx, 姓名:xxx , 性别:xxx
方法: - 动词-能干嘛
写代码, 吃饭,洗澡, 喝水
发现: 同一类型的对象中,他们都有相同的属性和方法, -- 抽取成一个模板 -
类:具有相同属性和方法的对象的集合
方鹏 - 个体,人 - 对象
学生:是一个群体,一批人,类
类和对象 ? - 记住
对象:用来描述一个实实在在的个体,由属性(固有的属性,一般是一个名称)和方法(动词,能干嘛)组成
类:类是抽象的,
1:理解对象的属性和方法
对象:用来描述客观事物的一个实体,由一组属性(静态特征)和方法(动态特征)构成;
属性:用来描述对象的固有特征,一般是名词;
方法:用来描述对象的动作,这个对象能干嘛,一般是动词;
2:类和对象的关系
举例理解:学生对象
两个学生对象,他们有共同的属性和行为(方法),但是属性的值是不一样的,
在开发中我们可以把具有共同属性和方法的同类型的对象进行抽取,制作成一个模板,这个模板就叫做“类”
因为类是从对象中抽取的,所以类也是有属性和方法组成的。
类仅仅是一个模板,描述了同一类型对象的共同属性和方法
对象:是通过这个模板创建出来的一个实实在在的个体
记忆:类和对象的关系 --- 记住
类是抽象的,对象是具体的
类是具有相同属性和行为(方法)的对象的集合
对象是类的一个实例,是一个具体的实体,是由属性和方法构成的。
代码:先创建一个类 -- 创建这个类的对象 -- 调用属性和方法
3:创建类和对象
使用java实现类和对象的关系
1:创建一个类(属性和方法)
2:通过这个类创建对象
3:使用对象名调用属性和方法,对象名.属性名 , 对象名.方法名();
4:使用对象
创建对象:
类名 对象名 = new 类名();
School center = new School();
引用对象成员使用"."进行下列操作
引用类的属性:对象名.属性
引用类的方法:对象名.方法名()
center.name="ly"//给name赋值
center.showCenter();//调用showCenter方法
5:方法
5.1:方法的定义
方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果
方法定义类的某种行为(或功能), 是功能的实现
记忆:
方法五要素:修饰符,返回值类型,方法名,参数列表,方法体。 - 记住
public void show(){
System.out.println("姓名:" + name + ",年龄:" + age);
}
方法中返回值介绍:
如果方法有返回值,方法中必须使用关键字return返回某个值,返回值类型为该值的类型,且返回值只能有一个。
return的作用:结束方法,返回结果。
注意:当调用有返回值的方法时,需要定义一个变量接受
如果方法没有返回值,返回值类型为void
有返回值:
public String getName(){
return name;
}
无返回值
public void show(){
System.out.println("姓名:" + name + ",年龄:" + age);
}
5.2:方法的调用
问:如何调用一个类的方法?
明确:你要调用哪个类的哪个方法?
1:创建这个类的对象
2:对象名.方法名();
5.3:方法间的调用
方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率
Student 类的方法 a()调用Student类的方法b(),直接调用 |
public void a(){ b(); } |
Student类的方法a()调用Teacher类的方法b(),先创建类对象,然后使用"."调用 |
Public void a(){ Teacher t = new Teacher(); t.b(); //调用Teacher类的b() } |