【面向对象(类)、封装、private、this】
面向对象
1.1 面向对象思想概述
Java语言是一种面向对象的程序设计语言,而面向对象思想是一种程序设计思想,我们在面向对象思想的指引下,使用Java语言去设计、开发计算机程序。 这里的对象泛指现实中一切事物,每种事物都具备自己的属性和行为。面向对象思想就是在计算机程序设计过程中,参照现实中事物,将事物的属性特征、行为特征抽象出来,描述成计算机事件的设计思想。 它区别于面向过程思想,强调的是通过调用对象的行为来实现功能,而不是自己一步一步的去操作实现。
面向对象思想是一种更符合我们思考习惯的思想,它可以将复杂的事情简单化,并将我们从执行者变成了指挥者。 面向对象的语言中,包含了三大基本特征,即封装、继承和多态。
1.2 类和对象
类:是一组相关属性和行为的集合。可以看成是一类事物的模板,使用事物的属性特征和行为特征来描述该类事物。
属性:就是该事物的状态信息。
行为:就是该事物能够做什么。
对象:是一类事物的具体体现。对象是类的一个实例(对象并不是找个女朋友),必然具备该类事物的属性和行为
类与对象的关系 :
类是对一类事物的描述,是抽象的。
对象是一类事物的实例,是具体的。
类是对象的模板,对象是类的实体。
类
1.1类的概述
类是对某一类事物的抽象描述,即是现实世界的一类事物
1.2类的定义
public class ClassName {//成员变量//成员方法}
定义类:就是定义类的成员,包括成员变量和成员方法。
成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
成员方法:和以前定义方法几乎是一样的。
1.3类的调用
类名 对象名 = new 类名();
对象名.成员变量;
对象名.成员方法();
1.4类的内存图
1.5类作为方法参数
1.6类作为方法返回值
成员和局部变量区别
成员变量指的是类的成员,作用于整个类,局部变量即是方法中的成员,作用只限制在方法中
1. 定义位置上的区别
成员变量,定义在类中,方法外
局部变量,方法内,语句内
2. 作用域不同
成员变量,作用范围是整个类
局部变量,方法内,语句内
3. 默认值不同
成员变量,有自己的默认值
局部变量,没有默认值,不赋值不能使用
4. 内存位置不同
成员变量,跟随对象进入堆内存存储
局部变量,跟随自己的方法,进入栈内存
5. 生命周期不同
成员变量,跟随对象,在堆中存储,内存等待JVM清理 , 生命相对较长
局部变量,跟随方法,方法出栈 生命相对较短
封装性
1.封装是面向对象思想的特征之一,通过隐藏了实现细节,对外提供可以访问的方式
如:①方法就是一个最基本封装体 ②类其实也是一个封装体 ③关键字private也是一种封装
2.封装好处
①提高了代码的复用性
②隐藏了实现细节,对外提供公共访问的方式
③提高了安全性
关键字private(私有化)
1.一旦使用了private进行修饰,那么本类当中仍然可以随意访问。但是!超出了本类范围之外就不能再直接访问了。
2.间接访问private成员变量,就是定义一对儿Getter/Setter方法
注意:
①private是修饰符,属于成员修饰符,不能修饰局部变量
②被private修饰的成员,只能在自己的本类中被使用
③对私有变量,在类中要提供公共的访问方式: 方法
总结:类中不需要对外提供的内容都私有化,包括属性和方法。并提供setXxx getXxx方法对其进行访问
关键字this
1、区分成员变量和局部变量同名情况
2、调用成员变量:this.成员变量名
3、构造方法之间的调用:this.(参数)
public class Person { private int age; public void setAge(int age) { this.age = age; } public int getAge() { return age; } public boolean compare(Person p){ //自己和别人比年龄,自己是谁 this和p return this.age == p.age; } }
构造方法
1、构造方法的定义:是对象创建时要执行的方法,在new 的同时对成员变量赋值, 给对象的属性初始化赋值
2、构造方法格式
权限 方法名(参数列表){
}
注意事项:
①构造方法的名称必须和所在的类名称完全一样,就连大小写也要一样
②构造方法不要写返回值类型,连void都不写,不能return一个具体的返回值
③在new 的时候,自动执行只运行一次,仅此而已
④.每个类必须拥有构造方法,构造方法不写也有,如果无,编译器就会自动添加一个构造方法,如果有,不会自动添加构造方法
⑤构造方法也是可以进行重载的
⑥构造方法可以初始化对象,但对象在创建之后修改和访问相应的属性值时,还是只能通过set或者get方法来操作


浙公网安备 33010602011771号