已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
静态方法静态变量JAVA的静态变量静态方法静态类 静态变量和静态方法都属于静态对象,它与非静态对象的差别需要做个说明。 (1)Java静态对象和非静态对象有什么区别? 比对如下: 静态对象 非静态对象 拥有属性: 是类共同拥有的 是类各对象独立拥有的 内存分配: 内存空间上是固定的空间在各个附属类里面分配 分配顺序: 先分配静态对象的空间继而再对非静态对象分配空间,也就是初始化顺序是先静态再非静态. java静态对象到底有什么好处? A,静态对象的数据在全局是唯一的,一改都改。如果你想要处理的东西是整个程序中唯一的,弄成静态是个好方法。 非静态的东西你修改以后只是修改了他自己的数据,但是不会影响其他同类对象的数据。 B,引用方便。直接用 类名.静态方法名 或者 类名.静态变量名就可引用并且直接可以修改其属性值,不用get和set方法。 C,保持数据的唯一性。此数据全局都是唯一的,修改他的任何一处地方,在程序所有使用到的地方都将会体现到这些数据的修改。有效减少多余的浪费。 D,static final用来修饰成员变量和成员方法,可简单理解为“全局常量”。对于变量,表示一旦给值就不可修改;对于方法,表示不可覆盖。 (2)静态变量、静态方法和静态块 通常情况下,类成员必须通过它的类的对象访问,但是可以创建这样一个成员,它能够被它自己使用,而不必引用特定的实例。在成员的声明前面加上关键字static就能创建这样的成员。如果一个成员被声明为static,它就能够在它的类的任何对象创建之前被访问,而不必引用任何对象(跟类是否有static修饰无关)。 你可以将方法和变量都声明为static。static 成员的最常见的 例子是main( ) 。声明为static的方法有以下几条限制(main也是?): A,它们仅能调用其他的static 方法 B,它们只能访问static数据 C,它们不能以任何方式引用this 或super(this涉及到对象,super 与继承有关) 示例:Static 块仅在该类被加载时执行一次。下面的例子显示的类有一个static方法,一些static变量,以及一个static 初始化块。 java view plain copy publilassTestNew staticinta=3; staticintb; staticvoidmeth(intx) System.out.println(x=+x); System.out.println(a=+a); System.out.println(b=+b); static System.out.println(staticblockinitialized); b=a*4; publicstaticvoidmain(Stringargs) /TODOAuto-generatedmethodstub meth(42); 执行结果是: static block initialized x = 42 a = 3 b = 12 上述class TestNew的执行顺序是:首先static 块执行(打印一条消息),a被设置为3,最后b被初始化为a*4 成12。然后调用main(),main () 调用meth() ,把值42传递给x。3个println ( ) 语句引用两个static变量a和b,以及局部变量x 。 (3)外部使用静态变量或者静态方法 在定义它们的类的外面,static 方法和变量能独立于任何对象而被使用,你只要在类的名字后面加点号运算符即可。可以看到,这种与通过对象引用变量调用非static方法或者变量的格式类似。示例: java view plain copy classStaticDemo staticinta=42; staticintb=99; staticvoidcallme() System.out.println(a=+a); publilassTestNew publicstaticvoidmain(Stringargs) /TODOAuto-generatedmethodstub StaticDemo.callme(); System.out.println(b=+StaticDemo.b); 执行结果: a = 42 b = 99 (4)静态内部类是指在一个类的内部,又定义了一个用static修饰的类。可以用C中的结构体内嵌结构体来理解。 A,首先,用内部类是因为内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类。所以没有必要专门用一个Java文件存放这个类。 B,静态方法、静态成员变量。它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名直接获得。这样静态内部类就可以理解了,它可以直接被用 外部类名+内部类名 获得。举例如下: public class Build . public static class VERSION . public static final String RELEASE = getString(ro.build.version.release); . . 在外部可以直接通过Build.VERSION.RELEASE来访问。 补充一个:关于类中类变量的定义(与static主题无关)。WakeLock是PowerManager类中的类,已经import android.os.PowerManager;如果要定义WakeLock型的变量,需要PowerManager.WakeLock mSmartStayWakeLock = null;如果想WakeLock mSmartStayWakeLock = null;则Import时要用import android.os.PowerManager.WakeLock;。 原文:.blogs./-0_0-/articles/1962368.html 参考原
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广东省河源市单招职业适应性考试题库含答案详解(基础题)
- 2026年广东省肇庆市单招职业倾向性测试题库含答案详解(模拟题)
- 2026年广东省佛山市单招职业适应性测试题库带答案详解(培优a卷)
- 2026年广西培贤国际职业学院单招职业技能考试题库带答案详解(完整版)
- 超微柔性显示驱动芯片生产线项目可行性研究报告
- 入院护理计划制定原则
- 儿童肥胖干预措施
- 入院护理中的健康教育策略
- 高中主题班会 保障粮食供给端牢中国饭碗教学设计-高二上学期粮食安全主题班会
- 物业服务企业法律法规及服务规范岗前培训试题及答案
- 2024年湖南长郡中学丘成桐少年班选拔数学试题(含答案)
- 儿科常见疾病护理常规
- 2025年四川省高考化学试卷真题(含答案解析)
- 网络工程师第1讲课件
- 2025年湖南省长沙市中考语文真题(解析版)
- T/CAQI 96-2019产品质量鉴定程序规范总则
- 路亚快艇转让协议书
- 企业自行监测指南培训
- 2025中考英语作文复习:12个写作话题写作指导+满分范文
- 证书合作合同协议
- 尾矿坝工程项目施工方案
评论
0/150
提交评论