------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
Day06
06.01 面向对象思想概述
1、面向过程思想概述 强调的是过程
第一步
第二步
2、面向对象思想概述 由面向过程演变而来
而面向对象是强调对象,对象里面封装了第一步、第二步...
只要负责调用对象就行了,由对象调用里面的方法
找对象(第一步,第二步)
3、举例
区别:
买煎饼果子:1、找会摊煎饼的大妈(包含了摊煎饼的技术,如何摊煎饼)
2、给钱3、吃。这个其实就是面向对象,我们只负责给钱就可以了。大妈里面封装了摊煎饼的第一步、第二步。。。,我们只要给钱、吃就可以了。而面向过程:1、学习摊煎饼的技术2、买材料(薄脆,油等)3、开始摊煎饼4、吃5、收拾。面向过程强调过程,而面向对象强调的是对象,把事情交给对象来做,对象里面封装步骤就可以了。对于我们调用者来说,面向对象更加简单。这就是面向过程和面向对象的区别。
洗衣服:面向过程的话就是...,面向对象只要交给洗衣机就可以了。
4、面向对象思想特点
A是一种更符合我们思想习惯的思想
B可以将复杂的事情简单化,对象里面虽麻烦,但一旦创建,就可以提
供给我服务,或提供给别人服务,可以不断复用。
C将我们从执行者变成了指挥者
角色发生了转换
5、面向对象开发
就是不断的创建对象,使用对象,指挥对象做事情,有的话就不用创建,
直接使用,创建了可以对以后进行服务。
6、面向对象设计
其实就是在管理和维护对象之间的关系,每个对象都实现不同的功能,
操作者,主要就是对各个对象进行管理和维护。
7、面向对象三大特征
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
06.02 类与对象概述
1、我们学习编程是为了什么?为了把我们日常生活中实物用学习的语言描述出来。
2、我们如何描述现实世界事物
属性 就是该事物的描述信息(事物身上的名词)
行为 就是该事物能够做什么(事物身上的动词)
3、java中最基本的单位是类,java中用class描述事物,也是如此描述
成员变量 就是事物的属性
成员方法 就是事物的行为
4、定义类其实就是定义类的成员(成员变量和成员方法)
A成员变量 和以前定义变量是一样的,只不过位置发生了改变,在类中
的方法外。
B成员方法 和以前定义方法是一样的,只不过把static去掉,后面再详
细讲解static的作用。
5、类和对象的概念
A类:是一组相关的属性和行为的集合
B对象:是该类事物的具体体现
C举例:
类 学生
对象 具体的某个学生就是一个对象
06.03 学生类的定义
1、学生事物
2、学生类
3、案例演示
属性 姓名,年龄,性别
行为 学习,睡觉
06.04 手机类的定义
1、模仿学生类,让学生自己完成
属性 品牌(brand)价格(price)
行为 打电话call,发信息sendMessage,玩游戏playGame
06.05 学生类的使用
1、文件名问题
在一个java文件中写两个类:一个基本的类,一个测试类
建议:文件名称和测试类名称一致
2、如何使用对象
创建对象并使用
格式:类名 对象名 = new 类名();
3、如何使用成员变量呢?
对象名.变量名
4、如何使用成员方法呢?
对象名.方法名(...)
06.06 手机类的使用
1、学生自己完成
模仿学生类,让学生自己完成
06.07 一个对象的内存图
1、画图演示
一个对象
06.08 二个对象的内存图
1、画图演示
二个不同的对象
06.09 三个引用两个对象的内存图
1、画图演示
三个引用,有两个对象的引用指向同一个地址06.10 成员变量和局部变量的区别
1、在类中的位置不同
成员变量:在类中方法外
局部变量:在方法定义中或者方法声明上
2、在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)
3、生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4、初始化值不同
成员变量:有默认初始化值 null 0 0.0 false \u0000 之类的
局部变量:没有默认初始化值,必须定义,赋值,然后才能使用
注意事项:
局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。
基本数据类型变量包括哪些:byte , short , int , long , float , double , boolean ,char
引用数据类型变量包括哪些:数组,类,接口,枚举
06.11 方法的形式参数是类名的时候如何调用
1、方法的参数是类名public void print(Student s ){} //print(newStudent());
如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。
06.12 匿名对象的概述和应用
1、匿名对象就是没有名字的对象
2、匿名对象应用场景
A调用方法,仅仅只调用一次的时候
这种匿名调用的好处就是节省代码
注意:调用多次的时候,不合适。匿名对象调用完毕就是垃圾,可
以被垃圾回收器回收。
B匿名对象可以作为实际参数传递
3、案例演示
匿名对象应用场景
06.13 封装的概述
1、封装概述:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
2、封装好处
隐藏实现细节,提供公共的访问方式
提高了代码的复用性
提高安全性
3、封装原则
将不需要对外提供的内容都隐藏起来
把属性隐藏,提供公共方法对其访问
06.14 private关键字的概述和特点(翻译是“私有”的意思)
1、人类赋值年龄的问题
2、private关键字特点
是一个权限修饰符
可以修饰成员变量和成员方法
被其修饰的成员只能在本类中被访问
3、案例演示
封装和private的引用:
A把成员变量用private修饰
B提供对应的getXxx())(获取)和setXxx()(设置)方法
private仅仅是封装的一种体现形式,不能说封装就是私有:目的就是告诉我们,只要不让别人进行访问了,就是一种封装,学包的时候再详细解释。
06.15 this关键字的概述和应用
1、this关键字特点
代表当前对象的引用
2、案例演示
this的应用场景
用来区分成员变量和局部变量重名!!
06.16 手机类代码及其测试
1、学生练习
请把手机类写成一个标准类,然后创建对象测试功能