通俗易懂的介绍关键字final 和static

1. final

final可以用来修饰类、方法、变量、基本类型以及引用类型。具体功能如下:

1.1 用final修饰类

用final修饰类,则表示该类不能被其它类继承。

//用final修饰的类不可以被继承
public final class Tes1 {
    // 用final修饰的变量必须赋值,并且不能再修改
	private final int i = 1;
}

1.2 用final修饰方法

用final修饰方法,则表示该方法不能被其子类重写。若父类是public,则子类可以继承到该方法,但是不能重写;若父类是private,则子类继承不到该方法。所以final不能修饰构造方法。

	public final void getId() {
		//用final修饰的方法不可以被重写
	}

1.3 用final修饰变量

用final修饰变量,则表示该变量在定义的时候必须赋值,况且被赋值之后,变量的值就不能再修改,否则会报错。

//用final修饰的变量必须赋值,并且不能再修改
private final int i=1;

1.4 用final修饰基本类型

用final修饰基本类型,则表示该类型的变量在定义的时候必须初始化,况且被初始化之后,变量的值就不能再修改,否则会报错。

1.5 用final修饰引用类型

引用类型可以理解为一个引用变量指向一个对象。因此用final修饰引用类型变量时,只可以指向一个对象,不能再指向其它,但是对象的内容是可以改变的。并且不可以通过【引用型变量名=null】的方式来解除绑定。

	public  class SandFina {
	   public static void main(String[] args) {
		  final A a =new B();
		  a=new B();
		  a=null;
	    }	
     }

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

2. static

static 可以用来修饰成员变量、方法,也可以形成代码块。

2.1 用static修饰成员变量

(1)用static 修饰的变量,也叫静态变量,静态变量可以被所有对象共享。
(2)static成员变量的是按照定义的顺序进行初始化,而且static不可以修饰局部变量。
(3)所以一般在需要实现以下两个功能时使用静态变量:
① 在对象之间共享值时;②方便访问变量时

2.2 用staticl修饰方法

用static 修饰的方法也叫类方法。静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法,只能访问所属类的静态成员变量和成员方法。

2.3 static代码块

static代码块是在类中独立于类成员的static语句块,可以有多个,位置可以随便放,它不在任何的方法体内,JVM加载类时会执行这些静态的代码块,如果static代码块有多个,JVM将按照它们在类中出现的先后顺序依次执行它们,每个代码块只会被执行一次。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值