Static和Final修饰类属性变量及初始化
日期:2007年12月14日 作者: 查看:[大字体 中字体 小字体]-
1.static修饰一个属性字段,那么这个属性字段将成为类本身的资源,public修饰为共有的,可以在类的外部通过test.a来访问此属性;在类内部任何地方可以使用.如果被修饰为private私有,那么只能在类内部使用.
public class Test{
public static int a;
private Test(){
a=0;
}
}如果属性被修饰为static静态类资源,那么这个字段永远只有一个,也就是说不管你new test()多少个类的对象,操作的永远都只是属于类的那一块内存资源.例如:
Test t1=new Test();
t1.a=10;
Test t2=new Test();
System.out.println(t1.a);
System.out.println(t2.a);
System.out.println(Test.a);结果是3个0
2.final 用于声明属性,方法和类,分别表示属性一旦被分配内存空间就必须初始化并且以后不可变,方法一旦定义必须有实现代码并且子类里不可被覆盖,类一旦定义不能被定义为抽象类或是接口,因为不可被继承。
而你的代码里对final修饰的属性进行了修改,所以错误.
3. 被final修饰而没有被static修饰的类的属性变量只能在两种情况下初始化:
a.在它被定义的时候,例:
public class Test{
public final int a=0;
private Test(){
}
}b.在构造函数里初始化,例:
public class Test{
public final int a;
private Test(){
a=0;
}
}4.同时被final和static修饰的类的属性变量只能在两种情况下初始化:
a.在它被定义的时候,例:
public class Test{
public final int a=0;
private Test(){
}
}b.在类的静态块里初始化,例:
public class Test{
public final int a;
static{
a=0;
}
}5.分析第三第四原因:
第三条:当这个属性被修饰为final,而非static的时候,它属于类的实例对象的资源,当类被加载进内存的时候这个属性并没有给其分配内存空间,而只是定义了一个变量a,只有当类被实例化的时候这个属性才被分配内存空间,而实例化的时候同时执行了构造函数,所以属性被初始化了,也就符合了当它被分配内存空间的时候就需要初始化,以后不再改变的条件.
第四条:当类的属性被同时被修饰为static和final的时候,他属于类的资源,那么就是类在被加载进内存的时候(也就是应用程序启动的时候)就要已经为此属性分配了内存,所以此时属性已经存在,它又被final修饰,所以必须在属性定义了以后就给其初始化值.而构造函数是在当类被实例化的时候才会执行,
- [1] [2] 下一页
-
- Static和Final修饰类属性变量及初始化 相关文章:
- ·详解Alexa网站流量排名
- ·用迅雷Thunder批量下载电骡资源的方法集锦
- ·Word邮件合并实例:批量制作有照片的工作证
- ·在PowerPoint 2007里把PPT文档批量转为PDF
- ·彻底解决Windows Vista音量图标丢失问题
- ·Static和Final修饰类属性变量及初始化
- ·Java基础:你是否了解KVM的常量池
- ·迅雷批量下载方法揭秘
- ·css里expression实现界面对象的批量控制
- ·Illustrator中线条宽度与质量的精确控制
- Static和Final修饰类属性变量及初始化 相关软件
- ·《盟军敢死队:打击力量》预告片欣赏
- ·《华夏》4.0版增量手动补丁包
- ·正义与邪恶的较量:刑庭法官
- ·《咒语力量2巨龙风暴》强档全攻略
- ·《空间力量:恶棍宇宙》v1.1升级补丁
- ·《卓越之剑GE》限量公开测试客户端
- ·大较量
- ·世界军事力量写真
- ·习惯的力量
- ·自由力量VS第三帝国(Freedom Force vs the Third Reich)免CD补丁
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·图象处理中的边缘检测------canny算子
- ·EZ-USB 68013A开发指南
- ·数值计算程序大放送-特征值和特征向量
- ·ARM的嵌入式Linux移植体验之BootLoader
- ·Visual C++ ADO数据库编程入门
- ·智能手机Smartphone开发导语
- ·利用 wordXP 实现自动排班
- ·[分形]DLA团簇模型的摸拟
- ·DENX U-Boot及Linux使用手册
- ·Visual FoxPro 9.0 SP2正式版下载
- ·VS2005控件的问题解决办法
- ·Cookie是什么?用法是怎样?与SESSION有什么区别?
- ·J2SE API读取Properties文件的六种方法
- ·Silverlight、JavaFX、Flex技术比较
- ·Silverlight将不再支持ArrayList类型
- ·教程:XSLT Designer快速入门指南
- ·创建Web应用和Struts框架配置文件实例
- ·Spring入门指引:理解Spring的打包方式
- ·UDT协议-基于UDP的可靠数据传输协议
- ·解析KJava在移动设备开发中的应用
