天马行空工作室

 找回密码
 加入天马
搜索
查看: 2931|回复: 0

static、final

[复制链接]
发表于 2012-6-7 17:16:20 | 显示全部楼层 |阅读模式
一、static关键字
     通常情况下,类成员必须通过它的类的对象才可以访问。有时我们希望定义一个类成员,该成员完全独立于该类的任何一个对象。怎么实现这个呢。这就需要static关键字了。
    如果一个成员被声明为static,那它就可以在它的类的任何对象创建之前访问。也就是说,不用创建该类的对象,也可以访问类成员。
   static块仅在该类被加载时执行一次。声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量。
    如何在类的外部访问定义为static的类成员呢。可以使用以下通用的格式:
                                       
classname.method()
   其中classname是类的名称,method就是该类定位为static的方法。  static变量也可以使用同样的格式访问。
   下面是一个例子。在main()中,static方法callme()和static变量b在它们的类之外被访问。
  1. class StaticDemo
  2. {
  3. static int a = 42;
  4. static int b = 99;

  5. static void callme()
  6. {
  7. System.out.println("a = " + a);
  8. }
  9. }
  10. class StaticByName
  11. {
  12. public static void main(String args[])
  13. {
  14. StaticDemo.callme();
  15. System.out.println("b = " + StaticDemo.b);
  16. }
  17. }
复制代码
注:声明为static的方法有以下几条限制:
                 
(1)仅能调用其他的static方法;
                (2)仅能访问static数据;
                (3)不能以任何形式引用this或super。
二、final关键字
   一个变量可以声明为final,这样做的目的是阻止它的内容被修改。这意味着在声明final变量的时候,必须初始化它(在这种用法上,final类似于C/C++中的const)。例如:
                         final int FILE_NEW = 1;
                         final int FILE_OPEN = 2;
                         final int FILE_SAVE = 3;
                         final int FILE_SAVEAS = 4;
                         final int FILE_QUIT = 5;
在程序的随后部分现在可以使用 FILE_OPEN等等,就好像它们是常数,不必担心它们的值会被改变。
为final变量的所有的字符选择大写是一个普遍的编码约定。声明为final的变量在实例中不占用内存。这样,一个final变量实质上是一个常数。final用于被应用于方法,此点在后期会进一步解释。
您需要登录后才可以回帖 登录 | 加入天马

本版积分规则

Archiver|手机版|小黑屋|天马行空工作室 ( 京ICP备12003429号  

GMT+8, 2020-5-28 22:49 , Processed in 0.024198 second(s), 18 queries .

Powered by Discuz! v8

© 2010-2014 static、final - Java 天马行空工作室

快速回复 返回顶部 返回列表