第二章:面向对象进阶
此章节目标:
1.成员变量
1.1 成员变量的概述
变量可以分为成员变量和局部变量,成员变量是在类范围内定义的变量,局部变量是在方法中定义的变量。
成员变量也称为属性;
1.2成员变量的使用
成员变量在使用之前,需要先进行声明,声明成员变量是在类的内部、方法的外部定义的变量,成员变量分为实例变量和类变量。实例变量作用域是当前所属实例的范围,类的成员变量的作用域是整个类范围。
成员变量的声明要给出变量名、变量类型以及其他特性,其语法如下:
[<修饰符>] [static] [final]< 变量类型><变量名>
(1) static: 表示一个类的成员变量,即静态成员变量。
(2) final: 表示是一个常量。
2.this关键词
Java提供了一个this关键词,this关键词总是指向调用该方法的对象
String name;
public 类名(String name){
this.name= name;
}
黑色的String name;是属性。而红色字体是参数,题目要求我们在构造方法中,要使变量初始化。现在这里的this后那个name就是属性而等号后的name是参数,就此分清楚属性和参数(在变量名和参数同名时)
3.隐藏和封装
根据名字就知道该含义是什么,顾名思义就是不被其他的发现,把自己隐藏起来、
目的:
(1)隐藏类的实现细节
(2)让使用者只能通过事先预定的方法访问数据,从而可以在该方法中加入控制逻辑,限制对属性的不合理访问。
(3)可进行数据检查,从而有利于保证对象信息的完整性。
(4)便于修改,提高代码的可维护性。
实现良好的封装,需要从以下两个方面考虑:
(1)隐藏对象的属性和实现细节,不允许外部直接访问。
(2)暴露出方法,让方法控制对这些属性进行安全的访问和操作。
因此,封装实际上有两个方面的含义:隐藏该隐藏的,暴露该暴露的。这两个方面都需要通过使用Java提供的访问控制符来实现
*访问修饰符:
private 私有 default 默认 protected 保护 public 公开
4.static关键词
被static修饰的变量就是静态变量,被static修饰的方法就是静态方法
类的成员变量包含静态变量(也称为类变量)和实例变量。静态成员变量是被static关键字修饰的成员变量,静态成员变量属于其所在类,被类中的所有实例共享,静态成员变量可通过类直接访问,也可通过类的实例访问。
被static修怖的方法称カ静态方法。静态方法也可通过类名直接访向。在使用静态方式肘需要注意,静态方法中不能访问非静态的成员,如实例属性、实例方法。
静态方法通常作为工具方法,不会因为实例的不同而影响方法最终的执行效果。
静态方法中不能访问实例成员,由于类需要先进行加载,类加载时会为静态的成员开辟内存空间,而实例成员在类的实例化阶段才被创建,所以当类加载时静态的成员已经被创建,而此时并不存在实例成员,因此不能在静态方法中访问非静态成员。反之,可以在实例方法中访问静态成员。
总结:
1.比较成员变量和局部变量的区别。
成员变量也称为属性。Java 中的成员变量分为类属性和实例属性两种,定义属性时没有static修饰符修饰的就是实例属性。其中,类属性从类被加载开始存在,直到系统完全销毁该类,类属性的作用域与该类的生命周期相同。而实例属性则从类的实例被创建起开始存在,直到系统销毁该实例,实例属性的作用域与其对应的实例的生命周期相同。
局部变量是在方法中定义的变量,它包括形参和方法局部变量,局部变量在方法中定义。Java的继承语法格式如下:[修饰符]class子类名(extends 父类名]{
//类定义部分
2. 简述this关键字的含义和用法。
执关键字总是指向调用该方法的对象。使用成员方法和成员属性时,可以使用"his 方法(参数列表)”和"he成员属性",分别调用当前对象的方法和成员属性。
3. 按优先级列出访问控制修饰符。(左至右)
private default protected public.
4.简述static关键字的含义和用法,
类的成员变量包含静态变量(也称为类变量)和实例变量。静态成员变量是被saice关键字修饰的成员变量,态成员安量属于其所在类,被类中的所有实例共享,静态成员变量可通过类直接访, 也可通过类的实例访问。