1、使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。例如,对于如下语句:
final StringBuffer a=new StringBuffer("immutable");
执行如下语句将报告编译期错误:
a=new StringBuffer("");
但...
分类:
编程语言 时间:
2015-01-15 18:18:33
阅读次数:
250
1.final的语义: java中final修饰符的语义是:不可变的。 在java中,final可以修饰:变量,方法和类。分别代表,变量是不可变的;方法是不可被重写的;类是不可被继承的。 2. final修饰变量: 当final修饰成员变量时,修饰类变量和实例变量,初始化的时机是不同的。 实例变量可...
分类:
编程语言 时间:
2015-01-10 13:51:39
阅读次数:
187
由于c++没有像Java一样有final关键字,在Java中被final关键字修饰的类是不能被继承的,所以使用c++实现不能被继承的类时会比较麻烦。在继承机制中,当调用子类的构造函数时会自动调用父类的构造函数,对于析构函数也是一样,当调用子类的析构函数时会自动调用父类的析构函数。那么,我们可以把构造...
分类:
编程语言 时间:
2015-01-07 20:27:13
阅读次数:
173
面向对象,是当今编程的主流,对于研发人员,可能对面向对象,多多少少的有一些认识,但是有些不常用的或许不是特别清楚。有时也是很有用的。下面就介绍几点知识。
一、final 关键字的一些知识:
1、final 关键字作为方法是可以被子类继承的。如下面:
class A{
final function operation(){
echo 'a...
分类:
Web程序 时间:
2015-01-06 20:05:56
阅读次数:
136
一直都傻傻的以为用final关键字定义的都是不可变的。没想到的是对基本类型来说,这是一直成立的。
但是对于final修饰的对象,仍然可以修改对象里面的对象和成员变量。不变的只是当前对象的地址。
昨天我还信誓旦旦的和被人说我用final修饰对象了,它是不可变的,它里面的数值是不会被修改的(其实是可以被修改的)!!!想想就觉得惭愧,特以此文告诫自己,在不明事情真相的情况下不要妄下结论。
对于基本类型,例如final int x=1,这时x是“真正的”不可变,即进行...
分类:
其他好文 时间:
2015-01-06 10:09:02
阅读次数:
122
(1)final在java中定义常量,可作用于基本类型或者类类型,若是作用于类类型,则此类类型不能作为父类被继承,也就是说它的下面不能有子类,这样的类叫做原子类。 C++中的const定义常量(2)Java中的final如果是对于基本类型,那和C++的const是一样的 但是如果是对对象而言,不同了...
分类:
编程语言 时间:
2015-01-05 12:52:48
阅读次数:
222
1、public static final String STRING = "Hello World!";
修饰类成员变量,该变量在此处赋值后,不允许后面再对该值进行修改,这也就是通常所说的常量。声明常量时必须初始化!
2、public final String str = "Hello World";
修饰对象成员变量,赋值后不可更改。与修饰类成员变量不同的是,声明时不一定非要初始化,详见...
分类:
编程语言 时间:
2014-12-31 16:21:05
阅读次数:
166
static:我们在两种特殊的情况下会使用static关键字:①我们想用一个存储区来保存一个特定的数据,无论要创建多少个对象,或者根本不创建对象。②我们需要一个特殊的方法,这个方法没有与类的任何一个方法相关联。public class StaticInJava { static int i =...
分类:
其他好文 时间:
2014-12-30 07:02:19
阅读次数:
192
Java初学者都必须理解的六大问题 对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。 问题四:final关键字到底修饰了什么? 沈阳463整形医院程序final使得被修饰的变量“....
分类:
编程语言 时间:
2014-12-25 16:06:22
阅读次数:
173
一、final关键字1.final类是不能被继承的,所以也就没有子类了。例子如下:会报错2.final方法顺便复习下重载和重写2.1重载例子:publicclassTestFinalClass{publicstaticvoidmain(Stringargs[]){}publicvoidadd(inti){System.out.print("parents..add...");}}classTestChildren..
分类:
编程语言 时间:
2014-12-18 19:03:41
阅读次数:
275