java final的用法

final关键字代表最终、不可改变的。

常见四种用法:

1、可以修饰一个类

/**
*当前类用final关键字进行修饰时,表示这个类不能让任何类进行继承。
*一个类如果用final修饰,该类所有的成员方法都无法进行覆盖重写。
*/
public final class finalClass{
	//TODO
} 

2、可以用来修饰一个方法

/**
*当用final关键字修饰类中的方法时,这个方法无法被子类覆盖重写
*abstract关键字和final关键字不能同时使用,说明:
*   abstract抽象类或抽象方法一定是要进行覆盖重写的,而final关键字修饰的类或方法,是不能*   进行覆盖重写的,两者自相矛盾
*/
public class MyClass{
	public final void method(){
		//TODO
	}
}

3、 可以用来修饰一个局部变量

/**
*使用final修饰局部变量,那么这个变量就不能进行更改。
*对于基本类型变量来说,不可变是指变量当中的数据不可改变。
*对于引用类型变量来说,不可变是指变量的引用地址值中不可改变。
*/
public class MyClass{
	public static void main(String[] args){
		final int num=1;
		//以下为错误写法
		//num=2;
		/**********************/
		final Employee employee = new Employee("小明");
		//以下为错误写法,设法引用类型变量的地址值
	    //employee=new Employee(“小亮”);
	    //以下为正确写法,引用类型变量的地址值未改变
	    employee.setName("小亮");
	}
}

4、 可以用来修饰一个成员变量

/**
*成员变量具有默认值,如果用final关键字进行修饰后,则必须手动赋值
*final修饰的成员变量,要么使用直接赋值,要么通过构造方法赋值
*/
//直接赋值
public class Person {
    private final String name="张三";

    public Person() {
    }

    public String getName() {
        return name;
    }
}
//构造方法赋值
public class Person {
    private final String name;

    public Person(String name) {
        this.name=name;
    }

    public String getName() {
        return name;
    }
}
原创文章 56 获赞 8 访问量 4748

猜你喜欢

转载自blog.csdn.net/jpgzhu/article/details/105327887