接上章 三个修饰符

chp8.三个修饰符

一、static(静态):

1.   概念:static修饰符标示类级别成员。

2.   静态属性(类变量):

I.   全类共有的属性(不属于某个实例对象)。

II.  访问静态属性可以使用 类名.静态属性名。如:Person.sun;

 

3.   静态方法(类方法):

I.   全类共有的方法(不属于某个实例对象)。

II.  访问静态方法可以使用 类名.静态方法名。

如:System.out.println();       Math.random();   Arrays.sort();

III. 静态方法不能直接访问非静态的属性和方法,(非静态的属性和方法,只能       在创建对象后才存在),如需访问非静态成员,必须先创建对象,再通过对       象引用调用。

IV. 所有引用调用的静态成员,都会转换成类名调用。

Super s = new Sub();

s.staticMethod();//Super.staticMethod(); 

V.  静态方法可以继承,不能覆盖,没有多态。

 

4.   静态代码块:

I.   类加载的时候被执行一次,不能手动调用。

II.  类加载(ClassLoader):

a.   JVM首次(new对象、调用静态成员时、使用子类时、Class.forName())            使用到某个类时,通过CLASSPATH查找该类的.class文件。

b.   将类的描述信息(属性、方法)加载到内存中,进行保存。

III. 静态代码块优先加载,可为静态属性赋值,或任何程序需要的初始化行为。

 

5.   加载类的顺序:

I.   父类静态属性

II.  父类静态代码块(按照书写顺序)

III. 子类静态属性

IV. 子类静态代码块

V.  父类成员属性

VI. 父类动态代码块

VII.父类构造方法

VIII.子类成员属性

IX. 子类动态代码块

X.  子类构造方法

 

二、abstract(抽象):

1.   修饰类:不能创建对象。

2.   修饰方法:只能有方法声明,不能有方法实现。(必须包含在一个抽象类中)

3.   作用:强制使用多态。

4.   注意:

I.   抽象类中不一定有抽象方法,但有抽象方法的类必须是个抽象类。

II.  子类继承抽象类后,必须实现父类中所有的抽象方法,否则子类还是个抽象            类。

 

三、final(最终):

1.   修饰类:此类不能被继承。(String、Math、System)

2.   修饰方法:此方法不能被子类覆盖。

3.   修饰变量:此变量值不能改变。(常量)。 USER_NAME

I.   没有默认值,必须手动赋初始值。

II.  只能被赋值一次:

a.   手动初始化。

b.   动态代码块初始化(此变量必须是实例变量)。

b.   构造方法初始化(此变量必须是实例变量)。

c.   静态代码块初始化(此变量必须是静态变量)。

e.   常用public static final公开静态常量。

注意:

I.   基本数据类型—值不可变。引用数据类型—地址不可变。

                 II.  abstractfinal 不可连用。


  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值