第8章类的高级概念

第8章类的高级概念

1, 理解访问修饰符
2,理解封装的概念及好处
3,理解类的静态成员
4,掌握静态初始化块和实例初始化块的用法
5,理解内部类的使用方式
8.1访问修饰符
概念:用来定义类中的属性和行为,能够被其他类在什么情况下可以进行访问的符号

访问修饰符:

private该类或非该类均可以访问
public只有该类可以访问
protected该类及其子类的成员可以访问,同一个包中的类也可访问
default默认:相同数据包中的类可以访问

访问级别: private  -->  default   -->   public   -->   protected

Java为类中的成员提供了四种访问级别,按照访问权限由大到小排列如下:
 公开访问级别:
使用public关键字修饰。用public关键字修饰的成员对外公开,
即公开成员可以被任何其它对象访问。
 受保护访问级别:
使用protected关键字修饰。受保护的成员可以被同包中的类所访问,
还可以被类的子类所访问,不管子类是在哪个包中。
 默认访问级别:
没有访问修饰符。默认访问级别的成员可以被同包中的其它类所访问。
 私有访问级别:
使用private关键字修饰。它是四种访问修饰符中级别最低的。
私有成员只有类本身可以访问,不对外公开

默认的(无访问修饰符关键字)两种。
实际上,所有类都是已经用访问修饰符声明的。
一个公共访问的类可以被任何其它类使用。
而默认访问的类只能袖同一句中的其它类使用。
8.2封装
封装的概念:
用于组装类的属性和行为,
并且通过访问修饰符以及方法的包装来隐藏类的成员的方式封装是0OP的四大特征之
继承、封装、多态、抽象是面向对象编程的四大基本概念。

封装的好处:
(1) 类的成员变量可以成为只读或者只写的。
(2) 类可以对存储在其成员变量中的内容有一个整体的控制。
(3)类的用户不需要知道类是如何存储数据的。

用get命名访问器方法
和set命名修改器方法
封装:
1,组装:
2,隐藏:(1)访问修饰符
1,访问修饰符的作用是限制属性和方法被使用和调用的范围。
即指明了类的数据成员和方法的能够被访问的程度。
2,如果一个类的组件(数据成员或方法)被声明为私有类型(private ) ,
则任何该类外部的方法是无法访问该组件的。
8.3静态类成员
static可选的修饰符:
注意:
(1) 静态方法不能访问非静态成员,
(2) 非静态方法可以访问静态成员。

(1)static修饰的全局变量叫静态变量,
经过static修饰的全局变量,已经与对象无关,
也叫类变量,类变量的值为所有对象所共享
它的数据已经不存在每个单独的对象身上,
而是存在方法区中的数据块的静态区域中
非静态成员变量,必须要等到实例化对象之后,才可以调用

(2)static修饰的方法叫静态方法,
即类方法,类方法只能使用静态变量,
而不能使用非静态的全局变量
跟类变量一样,
同样与对象已经无关, 直接上升为类的行为,
非静态方法,必须要等到实例化对象之后,才可以调用,
而静态方法,在类加载之后,就可以直接调用。

static修饰的内容存在于内存的时机是:类加载的时候
static在修饰全局变量时,一般用于修饰常量
主要目的:
节约堆内存,将变量定义在静态区域中,而不是每个对象的自身!
statici在修饰方法时,
一般用于修饰工具类的工具方法,
比如: Math类, Arrays类, StringUtils类,包括超级数组类.

静态方法中,不能访问非静态成员(属性,也指方法)
其原因是:
1、静态方法在加载时,非静态属性,方法压根就还没调用
2、假设可以调用,那么如果存在成千上万个对象,我在调用谁的属性,或者是调为?

static无法修饰构造函数,
因为static修饰的属性,或行为都与对象无关,但是构造是专门产生对象的。

8.4静态初始化块
除了声明静态成员变量和方法外,关键字static还有另外一种用法。
Java类可以包含一个静态初始化块,
静态初始化块是一组当类被JVM的类加载器加载时执行的语句。

初始化块,需要放置在属性之下,构造之上
实例初始化块:主要用圭初始化成员变量,一般是对象实例化时,
才会执行,并且是实例一次,执行一次。
它执行在构造函数执行代码的第3步到第4步之间

展开阅读全文

没有更多推荐了,返回首页