java final域

1.
当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变

2.
其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中这两个 地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数中给另外的值。

 

3.

引用对象 can never be changed to point to another object.
However, 引用对象 can be modified;

 

1.public class Bat {   
2.    final double PI = 3.14; // 在定义时便给址值   
3.    final int i; //称为"Blank final",因为要在构造函数中进行初始化,所以此处便不可再给值   
4.    final List list; // 此变量也与上面的一样   
5.  
6.    Bat() {   
7.        //PI=3.14;  不能同时既在定义时给了值,又在构造函数中给另外的值   
8.        i = 100;   
9.        list = new LinkedList();   
10.    }   
11.  
12.    Bat(int ii, List l) {   
13.        i = ii;   
14.        list = l;   
15.    }   
16.  
17.    public static void main(String[] args) {   
18.        // 1. 默认的构造函数   
19.        Bat b = new Bat();   
20.        System.out.println(b.i + "->" + b.list.getClass());   
21.  
22.        // 不论是i的 值或是list的类型,一旦初始化,无法再更改   
23.        // b.i=25;   
24.        // b.list=new ArrayList();   
25.  
26.        // 2.带参数的构造函数   
27.        Bat b2 = new Bat(10, new ArrayList());   
28.        System.out.println(b2.i + "->" + b2.list.getClass());   
29.        // 可以通过重新初始化来指定i的值或list的类型   
30.           
31.           
32.        //引用对象 can never be changed to point to another object.    
33.        //However, the object can be modified;   
34.        b2.list.add("aaa");   
35.    }   
36.}  


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值