wojue() 把类里的所有变量都指定为常量 这是不行的,我们要求的是创建一个常量,不是定义一个常量!!!!!!! jery_lee(U2-G2000) 在所在类里面是常量,你初始化这个类的实例的时候,常量也是确定了。 final 就代表只能一次赋值。这是没有错啊,但是我们怎么实例呢?,也就是我们根本就不能实例出一个不可变化的对象.
fianl Date d = new Date();只允许改变一次 错了我可以任意的执行 d.setTime(long time) 来改变 d 所表示的时间.fianl Date d = new Date(); 这个语句的意思只是说 d 这个指针只能指向现在这个对象,不能在再指向其他的对象.但是我的问题是我要怎么才能得到一个不可更改的 Date 对象?????!!!!
对啊,C++中也是如此,你刚才的 fianl Date d = new Date(), 实际上d是一个常量句柄,也就是说句柄不能够改变但是其中的内容是可以改变的 如果为 final Int i=1000; 则常量是一个具体的数值,这时候就不允许改变了。
study_body 错了 在C++ 中是可以定义常量对象的比如:class A { ....... }我只需要使用 const A temp;就可以定义出一个 C++ 中的常量对象. temp 这个对象就不可以做任何的改变了,包括调用 temp 自己的成员函数来改变自己都是不可以的!!!!
final 就代表只能一次赋值。
把类里的所有变量都指定为常量
这是不行的,我们要求的是创建一个常量,不是定义一个常量!!!!!!!
jery_lee(U2-G2000)
在所在类里面是常量,你初始化这个类的实例的时候,常量也是确定了。
final 就代表只能一次赋值。这是没有错啊,但是我们怎么实例呢?,也就是我们根本就不能实例出一个不可变化的对象.
错了我可以任意的执行
d.setTime(long time) 来改变 d 所表示的时间.fianl Date d = new Date(); 这个语句的意思只是说 d 这个指针只能指向现在这个对象,不能在再指向其他的对象.但是我的问题是我要怎么才能得到一个不可更改的 Date 对象?????!!!!
fianl Date d = new Date(),
实际上d是一个常量句柄,也就是说句柄不能够改变但是其中的内容是可以改变的
如果为
final Int i=1000;
则常量是一个具体的数值,这时候就不允许改变了。
在C++ 中是可以定义常量对象的比如:class A
{
.......
}我只需要使用
const A temp;就可以定义出一个 C++ 中的常量对象. temp 这个对象就不可以做任何的改变了,包括调用 temp 自己的成员函数来改变自己都是不可以的!!!!
我觉得你要实现的话只能另外想办法,可以考虑wojue()的方法,创建一个类