final修饰符 final一个对象

来源:互联网 发布:linux服务器端口怎么开 编辑:程序博客网 时间:2024/05/24 01:49
public class Box{int height;Box(int h){height = h;System.out.println(height);}void printbox(){         //用来确定结果...System.out.println(height);}public static void main(String [] args){final Box boxobj = new Box(25);/*final居然写在这里...仔细想想也是 ~哈~盒子可不就是个不便的对象。*///它的长宽不是常量的原因是因为它是类//当构造其它实体需要改变值//进一步思考。圆不论大小都有个不变化量static final float PI=3.1415926;//boxobj = new box (32);//出错!!//上边这句话书上没有说明  他想改变盒子的长度...//头疼...明明不能改的盒子怎么就改成32了呢?boxobj.height = 32;System.out.println(boxobj.height);//创建了一个方法显示盒子状态,结果更头疼...//怎么还是  32  ???boxobj.printbox();}}



final修饰一个对象,那么这个对象的引用不能变,但是值是可以变的。

final Box boxobj = new Box(25);

简单的说,这个boxobj 只能new一次!而且下面这样也不可以。

Box boxobj2 = new Box(25);

boxobj =boxobj2;

但是,boxobj.height = 32; 这样写没错,因为没有改变boxobj的引用

类是引用类型的,boxobj这个东西里存储的一个地址,不是实际的数据,就跟c/c++的指针是一个意思。



0 0
原创粉丝点击