java final域

参考: http://liyuan2005.iteye.com/blog/209206

 

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

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

 

3.

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

 

 

public class Bat {
	final double PI = 3.14; // 在定义时便给址值
	final int i; //称为"Blank final",因为要在构造函数中进行初始化,所以此处便不可再给值
	final List list; // 此变量也与上面的一样

	Bat() {
		//PI=3.14;  不能同时既在定义时给了值,又在构造函数中给另外的值
		i = 100;
		list = new LinkedList();
	}

	Bat(int ii, List l) {
		i = ii;
		list = l;
	}

	public static void main(String[] args) {
		// 1. 默认的构造函数
		Bat b = new Bat();
		System.out.println(b.i + "->" + b.list.getClass());

		// 不论是i的 值或是list的类型,一旦初始化,无法再更改
		// b.i=25;
		// b.list=new ArrayList();

		// 2.带参数的构造函数
		Bat b2 = new Bat(10, new ArrayList());
		System.out.println(b2.i + "->" + b2.list.getClass());
		// 可以通过重新初始化来指定i的值或list的类型
		
		
		//引用对象 can never be changed to point to another object. 
		//However, the object can be modified;
		b2.list.add("aaa");
	}
}
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值