黑马程序员技术交流社区
标题:
final 关键字
[打印本页]
作者:
贾存双
时间:
2012-7-13 23:00
标题:
final 关键字
本帖最后由 贾存双 于 2012-7-13 23:03 编辑
import java.util.* ;
public class Message_zh_CN extends ListResourceBundle{
private final Object data[][] = {
{"info","贾存双,{0}!"}
} ;
public Object[][] getContents(){ //覆写的方法 ;
return data ;
}
} ;
这是用类写的一个资源文件。
===================================
import java.util.* ;
import java.text.* ;
public class ListDemo{
public static void main(String args[]){
Locale zhloc = new Locale("zh","CN") ;
ResourceBundle zhrb = ResourceBundle.getBundle("Message",zhloc) ;
String str = zhrb.getString("info") ;
System.out.println("中文显示:" + MessageFormat.format(str,"你一定要黑马!加油!")) ;
}
} ;
运行结果:
未命名.jpg
(24.19 KB, 下载次数: 12)
下载附件
2012-7-13 22:59 上传
为什么用 final 声明的的二维数组还可以被改变
作者:
温少邦
时间:
2012-7-14 00:00
final变量被赋值之后不能改变是指不能再被赋值
赋给final变量一个对象后,更改这个对象本身是可以的
比如数组:
public class FinalTest{
public static void main(String[] args){
final String[] s={"123","456"};
System.out.println(s[0]);
s[0]="qwe";
System.out.println(s[0]);
}
}
复制代码
s[0]="qwe"时
final定义的s变量还是指向这个数组,
只是这个数组里的内容改变了
作者:
全海波
时间:
2012-7-14 00:13
这个还真不知道
作者:
陆强强
时间:
2012-7-14 00:22
final修饰的成员变量可以通过new对象来不断赋值;
final修饰的局部变量可以通过不断调用所属方法来不断赋值。
所谓的final修饰的成员不能被修改是指不能被同等级成员修改,对上级成员无效。
像final修饰的局部变量,就不能被方法内的成员修改。而成员方法,成员变量也是在一个类里同级别的。
作者:
刘煜
时间:
2012-7-14 00:35
对于final修饰符,在Java声明类、属性和方法时,可以使用关键字final来修饰,final所标记的成分具有终态的特征,表示最终的意思。final的具体使用规则如下:
1、final标记的类不能被继承
2、final标记的方法不能被子类重写
3、final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次
4、final标记的成员变量必须在声明的同时赋值,如果在声明的时候没有赋值,那么只有一次赋值的机会,而且只能在构造方法中显式赋值,然后才能使用
5、final标记的局部变量可以只声明不赋值,然后再进行一次性的赋值
6、final一般用于标记那些通用性的功能、实现方式或取值不能随意被改变的成分,以避免被误用。
如果将引用类型(即任何类的类型)的变量标记为final,那么,该变量不能指向任何其它对象,但可以改变对象的内容,因为只有引用本身是final的。
注意红色字体部分,对于二维数组来说,只是定义了内存里一段连续的地址空间,它是引用类型的,数组只是指向你存的数据的空间,所以你可以修改二位数组的内容。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2