将功能封装进对象,强调了具备了功能的对象
eg1:将大象塞进冰箱:
面向对象思想:
我--指挥--冰箱;
冰箱:打开
冰箱:存储
冰箱:关闭
(功能)
面向过程思想:
我打开冰箱,大象存储进冰箱,关闭冰箱(动作)
---------------------------------------------------------------------------------------
eg2:
软件公司招聘你去干活:为了提高工作效率
老板(对象)--指挥你(对象)干活
-------------------------------------------------------------------------------------
从例子理解什么是面向对象:
①面向对象的特点:复杂的问题简单化,能使角色转变{执行者->指挥者}
②举例:(结合生活)
面向对象思考方式思考问题,公司招人需求,提高发展
你需要找一些具备编程经验的人帮公司完成工作
我就是那个对象,我是具备专业编程功能的人
你指挥我在做事
你在使用的我专业编程功能为公司解决事情
-------------------------------------------------------------------------------------
类与对象的关系
名词提炼法
人开门:门{开(){操作门}}人{开门(门){门.开()}}
面向对象三大特征:封装,继承,多态
开发:其实就是找对象使用,没有对象就创建对象
重点:找对象,建立对象,使用对象,维护对象的关系。
类和对象的关系:
类:对现实生活中事物的描述
对象:这类事物存在的个体
描述:提取对象中共性内容,对具体的抽象
共性:姓名,年龄,性别,学习java功能之类
该对象通过new产生的实体,在堆内存中
映射到java中,描述就是class定义的类,具体对象就是对应java在堆内存中用new建立的实体
Car c =new Car();
-------------------------------------------------------------------------------------
匿名对象:
new Car().num=5;①
new Car().color="blue";②
new Car().run();③
说明:默认num=4;color="yellow"
当调用②时,①成了垃圾,而③仍有意义
由此可知,匿名对象的使用方式:对象方法只调用一次,且作为实参传递
-----------------------------------------------------------------------------------------------------
封装:
隐藏对象的属性和实现的细节,仅对外提供公共访问方式
好处:
将变化隔离
便于使用
提高代码重用性
提高安全性
原则:把不需要对外提供的内容隐藏,把属性隐藏,提供公共方法对其访问
注意:私有仅仅是封装的一种表现形式,对访问的数据进行操作,提高代码健壮性
----------------------------------------------
构造代码块:
创建方法
class{
{
Syetem.out.println();
}
}
作用:给对象进行初始化,对象一建立就运行,优先于构造函数执行
构造代码块是给所有对象进行统一初始化
构造函数是给对应的对象初始化
重点:把构造函数初始化,相应的对象无法创建
-----------------------------------------------------------
this:
特点:就代表本类的对象
this代表它所在函数所属对象的引用
应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时使用this来表示这个对象,但凡本类功能内部使用了本类对象,都用this表示
一个类中可有多个构造函数,this()语句用于构造函数之间进行互相调用//this(name)
(要定义在构造函数第一行)