《Java面向对象》
第二章 面向对象进阶
知识要点:
一. 类的成员变量和类变量的区别:
1.类的成员:分为属性和方法,属性其实就是类的成员变量,也称全局变量,除了类的成员变量外,类的方法也可以声明变量,我们称局部变量。
2.成员变量: 分为属性和实例属性两种,未加static修饰符的就是实例属性,代表该类的每个对象都拥有该属性;加了static修饰的属性,则为类属性,属于类所有,整个项目仅此一份,属于共享使用。
补充:类属性从类被加载开始存在,直到系统完全销毁该类,类属性的作用域与该类的生命周期相同。而实例属性则是从类的实例被创建起开始存在,直到系统销毁该实例,实例属性的作用域与其对应的实例的生命周期相同 。
成员变量的使用语法:[<修饰符>] [ static] [final]<变量类型><变量名>
静态Static的类属性:
使用static修饰的属性称为类属性属于类所有,而非对象所有,项目中是唯一的。
非静态Static的实例属性:
未使用Static修饰的实例属性,属于对象所有,每个对象都拥有自己的实例属性,互不影响。
静态Static的类属性使用:
静态Static的类属性,因不属于对象,所有使用时直接通过类名加点操作符进行访问和使用。
二.this关键字和方法调用
this关键字和方法调用:
- 在类的定义时通过this关键字可访问 到该类的实例属性,this其实就一个指向当前类的对象的地址。
- 最大的作用:让类中的一个方法访问该类中的另一个方法或实例成员变量。
成员变量和局部变量重名:当 成员变量与局部变量重名时,为了区分,成员变量使用时加上this关键字。
三.类的成员封装
封装是面向对象三大特征之一
封装的主要意思是:将该隐藏的隐藏,该开发的开发。
封装目的:提高项目中属性或方法的安全性,隐藏内部实现细节。
Java中的封装可以实现以下目的:
1.隐藏类的实现细节
2.让使用者能通过事先预定的方法访问数据
3.可以对数据进行检查提高数据的可用性
4.便于修改,提高代码的可维护性
四.类中的静态方法和静态代码块
静态方法和静态代码块:
类包括加载和实例化两个阶段,当一个类被加载至JVM中,静态成员会被初始化,被static修饰的成员即为静态成员。
静态成员包括:静态代码块,静态属性,静态方法
静态成员不属于某个对象,仅属于静态成员所在的类,整个项目中是共用的,仅此一份。
静态成员:静态成员不属于对象所有,直接归属于类管理,使用时使用类名加点操作符。
静态成员的访问:静态成员通过类名直接访问,也可以通过对象名,但是不推荐使用对象访问。
静态代码块:静态代码块就是使用static{ }修饰的代码,在类被加载时初始化执行。
多个静态代码块:多个静态代码块将按顺序依次执行,且只会执行依次。