一、包含知识点:
1、面向对象概述
2、面向对象的特点
3、面向对象开发,设计,特征
4、类与对象的关系
5、成员变量和局部变量
6、匿名对象的应用
7、封装概述和封装private
8、构造函数和构造代码块
9、this关键字及this关键字的应用
10、this关键字在构造函数中的调用
二、详细介绍
1.面向对象概述
面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向过程:
•强调的是功能行为
面向对象:
将功能封装进对象,强调具备了功能的对象。
面向对象是基于面向过程的。
举例:
接了一个项目,要做需求分析、写代码和测试,我找人把这些过程都交给他们去做,他们对我来说就是对象,我就是在调用他们的开发功能,而我就是在面向对象。
2.面向对象的特点对象的特点
• 是一种符合人们思考习惯的思想
• 可以将复杂的事情简单化
• 将程序员从执行者转换成了指挥者
完成需求时:
• 先要去找具有所需的功能的对象来用。
• 如果该对象不存在,那么创建一个具有所需功能的对象。
• 这样简化开发并提高复用。
3、面向对象开发,设计,特征
开发:其实就是找对象,没有对象就创建对象,使用对象和指挥对象
设计:建立对象,使用对象,维护对象的关系
特征:封装、继承、多态
4、类与对象的关系
类:对现实生活中事物的描述
对象:就是这类事物实实在在存在的个体
现实生活中的对象:张三、李四
描述是:提取对象中的共性,对具体的抽象,如:姓名、性别、年龄等等。如下图:
可以理解为:
•类就是图纸
•汽车就是堆内存中的对象
类的定义:
• 如:人有身高,体重等属性,有说话,打球等行为。
Java中用类class来描述事物也是如此
• 属性:对应类中的成员变量。
• 行为:对应类中的成员函数。
定义类其实在定义类中的成员(成员变量和成员函数)。
总结:类就是描述对象的共性,定义类就是在描述事物、描述对象,就是在定义属性和行为(成员变量和成员方法)
生活中描述事物无非就是描述事物的属性和行为。
5、成员变量和局部变量
作用范围:
成员变量:作用于整个类中
局部变量:作用于函数或者语句中
在内存中的位置:
成员变量:在堆内存中,随着对象的存在而存在
局部变量:在栈内存中。
生命周期:
成员变量:只有在类销毁后才随着类的销毁而消失
局部变量:当函数或语句执行完毕后就会自动释放
默认初始化值:
成员变量:有默认初始化值
局部变量:没有初始化值
6、匿名对象的应用
class Car{
String color="red";
int num=4;
void run(){
System.out.println("颜色:"+color+";轮胎数:"+num);
}
}
/*
new Car();//这就是匿名对象
new Car().num=6;//没意义
new Car().color="green";//没意义
new Car().run();//有意义
//匿名对象使用方式1:当对对象的方法只调用一次时,可以用匿名对象来完成,这边比较代码比较简化,如果对一个对象进行多次成员调用,必须给这个对象起个名字
//匿名对象使用方式2:可以将匿名对象作为实际参数传递,如下:
*/
show(new Car());
}
//需求:汽车修配厂,对汽车进行改装,将来的车改成黑色,3个轮胎
public static void show(Car c)
{
c.color="black";
c.num=3;
c.run();
}
7、封装概述和封装private
封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处:将变化隔离,便于使用,提高重用性,提高安全性
封装原则:将不需要对外提供的内容隐藏起来,把属性都隐藏,提供公共方法对其访问.
private:私有,权限修饰符,用于修饰类中的成员(成员变量,成员函数)
注意:私有仅仅是封装的一种表现方式
之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句
对访问的数据进行操作,提高代码的健壮性。
8、构造函数和构造代码块
构造函数: 构造函数可以用于给对象进行初始化,当一个类中没有定义构造函数的时候,那么系统会默认给该类加入一个空参数的构造函数,当在类中自定义了一个构造函数,那么系统就不会给该类加入构造函数
什么时候定义构造函数?
当分析事物时,该事物存在(创建)就具备一些特性或者行为,那么将这些内容定义在构造函数中。比如:人一生下来就会哭.
构造代码块:
作用:给对象进行初始化,对象一建立就运行,而且优先于构造函数执行
和构造函数的区别:
构造代码块是给所有对象进行统一初始化
构造函数是给对应的对象初始化
构造代码块中定义的是不同对象的共性初始化内容
9、this关键字及this关键字的应用
this关键字:看上去是用于区分局部变量和成员变量同名的情况
this代表所在函数所属对象的引用.
哪个对象在调用this所在的函数,this就代表哪个对象但凡在本类对象中要调用本类对象时,必须要用到this
简单说:哪个对象在调用this所在函数,this就代表哪个对象,格式:this.
this关键字的应用:当定义类中功能时,该函数内部要用到的调用该函数的对象时,这时用this来表示该对象.但凡是本类功能内部使用到了本类对象,都用this来表示,格式:this.
10、this关键字在构造函数中的调用
this关键字在构造函数中的调用:只能定义在构造函数的第一行
用于构造函数之间的互相调用,格式:this();