Java-final

【1】修饰变量;

1.public class Test {
2.    //这是一个main方法,是程序的入口:
3.    public static void main(String[] args) {
4.        //第1种情况:
5.        //final修饰一个变量,变量的值不可以改变,这个变量也变成了一个字符常量,约定俗称的规定:名字大写
6.        final int A = 10;//final修饰基本数据类型
7.        //A = 20; 报错:不可以修改值
8.        //第2种情况:
9.        final Dog d = new Dog();//final修饰引用数据类型,那么地址值就不可以改变
10.        //d = new Dog(); -->地址值不可以更改
11.        //d对象的属性依然可以改变:
12.        d.age = 10;
13.        d.weight = 13.7;
14.
15.        //第3种情况:
16.        final Dog d2 = new Dog();
17.        a(d2);
18.        //第4种情况:
19.        b(d2);
20.
21.    }
22.    public static void a(Dog d){
23.        d = new Dog();
24.    }
25.    public static void b(final Dog d){//d被final修饰 ,指向不可以改变
26.        //d = new Dog();
27.    }
28.}

【2】修饰方法;

final修饰方法,那么这个方法不可以被该类的子类重写:

Java-final_第1张图片

【3】修饰类; 

final修饰类,代表没有子类,该类不可以被继承:

一旦一个类被final修饰,那么里面的方法也没有必要用final修饰了(final可以省略不写)

Java-final_第2张图片

【4】案例:JDK提供的Math类:看源码发现:

(1)使用Math类的时候无需导包,直接使用即可:

(2)Math类没有子类,不能被其他类继承了

(3)里面的属性全部被final修饰,方法也是被final修饰的,只是省略不写了

原因:子类没有必要进行重写。

(4)外界不可以创建对象:

Math m = new Math();

Java-final_第3张图片

(5)发现Math类中的所有的属性,方法都被static修饰

那么不用创建对象去调用,只能通过类名.属性名  类名.方法名 去调用

你可能感兴趣的:(java,开发语言)