Java:The final Keyword

 1 import java.util.*;
 2
 3 class Value {
 4     int i;
 5
 6     public Value(int i) {
 7         this.i = i;
 8     }
 9 }
10
11 public class FinalData {
12
13     private static Random rand = new Random(47);
14     private String id;
15
16     public FinalData(String id) {
17         this.id = id;
18     }
19     //can be compile-time constants:
20     private final int valueOne = 9;
21     private static final int VALUE_TWO = 99;
22     //Typical public constant:
23     public static final int VALUE_THREE = 39;
24     //cannot be compile-time constants
25     private final int i4 = rand.nextInt(20);
26     static final int INT_5 = rand.nextInt(20);
27     private Value v1 = new Value(11);
28     private final Value v2 = new Value(22);
29     private static final Value VAL_3 = new Value(33);
30     private final int[] a = { 1, 2, 3, 4, 5, 6 };
31
32     public String toString() {
33         return id + ": i4 = " + i4 + ", INT_5 = " + INT_5;
34     }
35
36     public static void main(String[] args) {
37         FinalData fd1 = new FinalData("fd1");
38         //!fd1.valueOne++; //Error:cannot change value
39         fd1.v2.i++;//Object is not constant
40         fd1.v1 = new Value(9);//OK--not final
41         for (int i = 0; i < fd1.a.length; i++) {
42             fd1.a[i]++; //Object is not constant
43         }
44         //!fd1.v2=new Value(0); //Error:cannot
45         //!fd1.VAL_3=new Value(1);//change reference
46         //!fd1.a=new int[3];
47         System.out.println(fd1);
48         System.out.println("creating new FinalData");
49         FinalData fd2 = new FinalData("fd2");
50         System.out.println(fd1);
51         System.out.println(fd2);
52     }
53 }

输出

fd1: i4 = 15, INT_5 = 18
creating new FinalData
fd1: i4 = 15, INT_5 = 18
fd2: i4 = 13, INT_5 = 18
时间: 2024-08-25 16:02:55

Java:The final Keyword的相关文章

Final Keyword In Java

The final keyword in java is used to restrict the user. The java final keyword can be used in many context. like: 1. variable 2. method 3. class 1) Java final variable If you make any variable as final, you cannot change the value of final variable(I

【笔试题】Java final keyword

Java 知识测试 Java final keyword Question 1 What is the use of final keyword in Java? A. When a class is made final, a sublcass of it can not be created. B. When a method is final, it can not be overridden. C. When a variable is final, it can be assigned

Summary: Final Keyword

In this tutorial we will learn the usage of final keyword. final keyword can be used along with variables, methods and classes. We will cover following topics in detail. 1) final variable2) final method3) final class 1. Final Variables final variable

Java中final、finally、finalize的区别(转)

Java中final.finally.finalize的区别与用法,困扰了不少学习者,下面我们就这个问题进行一些探讨,希望对大家的学习有所帮助. 方法/步骤 1 简单区别: final用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承. finally是异常处理语句结构的一部分,表示总是执行. finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等. END 方法/步骤2 1 中等区别: 虽然这三

Java关键字final、static使用总结

Java关键字final.static使用总结 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.        final成员变量表示常量,只能被赋值一次,赋值后值不再改变.        final不

[面试题]java中final finally finalized 的区别是什么?

final 是修饰符,可以用于修饰变量.方法和类.修饰变量时,代表变量不可以修改,也就是常量了,常量需要在定义时赋值或通过构造函数赋值,两者只能选其一:修饰方法时,代表方法只能调用,不能被 override ;修饰类时,代表类不能够派生出子类,所以一个类不能既是 final 又是 abstract; finally 是异常处理机制中的 try 的从句,用于处理必要的清理工作,那怕执行的 catch 中有 return 语句 finally 也会在 return 之前执行: finalized 是

Java的Final和C#的Const,Readonly比较分析(转载)

Java里面没有readonly关键字,预留了const的关键字,目前还没有实际用途,在Java中,跟这两个关键字比较接近的是final; C#中,两者都存在并可用.两者修饰的全局变量或局部变量都不能被修改. 下面是Java中final与C#中const以及readonly之间的联系和区别: 1) C#中,const可以修饰全局变量和局部变量,但readonly只能修饰全局变量. 2) C#中,const修饰的全局变量或局部变量必须在声明的时候初始化,因为是静态,所以无法使用构造方法初始化,当需

java中final注意的问题

public class Test{ public static void main(String[] args){ Person p = new Person(); } } /* 4.修饰的变量是一个常量(所有字符都大些 XXX 或者 XXX_XXX),只能赋值一次! final 固化的都是显示初始化的值(定义并初始化)(或者构造函数中的特定初始化的值, 但二者不能同时出现), 而不是默认的初始化值! 为什么要用final修饰变量.其实在程序中如果一个数据是固定的,那么直接使用这个数据就可以了

[转] Java关键字final、static使用总结

Java关键字final.static使用总结 一.final        根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量.你可能出于两种理解而需要阻止改变:设计或效率. final类不能被继承,没有子类,final类中的方法默认是final的.        final方法不能被子类的方法覆盖,但可以被继承.        final成员变量表示常量,只能被赋值一次,赋值后值不再改变.        final不