JAVA abstract、static、final 三个修饰符

abstract、static、final 三个修饰符

abstract

  • 修饰 类
      只能声明引用,不能创建对象

  • 修饰 方法
      只有方法的声明,没有方法的实现

static

  • 修饰 属性
      同类共有 ,即:基于同一个类创建的所有对象都共享此属性
           可用 类名.属性名 直接使用

  • 修饰 初始代码块
      静态初始代码块,只能存储静态属性。
      静态初始代码块,仅在类加载时执行一次。
      动态初始代码块,创建对象的时候执行,创建一次该类的对象就会执行一次。

class Test{
	public static void main(String[] args){
		System.out.println(A.value);
		System.out.println();
		A a = new A();
	}
}
class A {
	static int value = 3;
	static{
		System.out.println(value);
        value = 5;
        System.out.println(value);
		System.out.println("A初始");
	}
	public A(){
		System.out.println("构造");
		value = 10;
		System.out.println(value);
	}
}

结果:
      在这里插入图片描述

  • 修饰 方法

  1)静态方法可直接调用: 类名.方法名
  2)静态方法只能访问静态成员,动态方法可随意访问。
  3)由于静态方法可能是通过类名.方法名访问,没有创建对象,所以不能出现this(super)。
  4)静态方法之间才能相互覆盖
  5)无多态,即引用调用子类中静态方法时,由于子类不会覆盖父类静态方法,所以只会调用到父类的静态方法

final

  • 修饰
      不能被继承,即不能拥有子类

  • 修饰 变量
            final 变量–>常量
    1)只能赋值一次,且系统不提供默认值,程序员必须在初始代码块或构造方法中给予赋值一次。
    2)修饰引用时,不变的是引用的地址。
    3)常量还是属性。
    4)若修饰静态属性,只能在静态代码块中初始化。

  • 修饰 方法
        可继承给子类,但不能被子类覆盖。

修饰符的组合

private、static、final 都不能和 abstract 组合

类加载

当 JVM 第一次使用一个类的时候 , 它需要将这个类对应的字节码文件读入JVM , 从而获取这个类的全部信息 (类的父类, 拥有哪些属性,方法, 构造方法等等), 并保存起来。(保存在JVM的方法区)

类加载过程
  1. 如有必要,先加载父类
  2. 为类的静态属性分配空间,分配默认值
  3. 按照代码顺序,初始化静态属性或运行静态代码块

【注】如果仅仅是声明类的引用,不需要类加载

class Test{
	public static void main(String[] args){
		// 访问了一个类的静态属性,进行类加载
		System.out.println("b="+B.b); 
		System.out.println();
	
		A a = new B(); // 创建对象
	}
}
class A {
	static int a = 3;
	static{
		a = 5;
		System.out.println("A静态初始代码块");
	}
	public A(){		
		System.out.println("A构造");
		a = 10;
		System.out.println("a="+a);
	}
}
class B extends A {	
	static{
		b=1;
		System.out.println("B静态初始代码块");
	}
	public B(){
		super();
		System.out.println("B构造");
		System.out.println("b="+b);
	}
	static int b=2;
}

结果:
        在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值