A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 彭盼 中级黑马   /  2012-2-28 20:57  /  2138 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

static关键词通常都用来修饰变量,可否直接拿来修饰一个类呢?
例如public static class{}

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 有想法。

查看全部评分

2 个回复

正序浏览
我再补充一下啊,在一般类的定义中是不能使用static修饰符的,但是之所以提出来,是因为真有一种情况可以将类定义为static类型的,那就是内部类。
如下的定义中,是一个内部类的实现:
package net.moon.insignificant.staticclass;

public class StaticClassDemo {

public static void main(String[] args) {
StaticClassDemo.InnerClass ic = new StaticClassDemo.InnerClass();
ic.showMessage("Hello, world");
}

static class InnerClass{
public void showMessage(String msg){
System.out.println(msg);
}
}
}

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 再补充一分

查看全部评分

回复 使用道具 举报
static应该是不能修饰一个类的,但是可以在类中写static 代码块 :
      类中可以包含静态代码块,它不存在于任何方法体中。在JAVA虚拟机加载类时会执行这些静态代码块。如果类中包含多个静态块,那么JAVA虚拟机将按照他们在类中出现的顺序依次执行它,并且每个代码块只会被执行一次。

class StaticBlock{   
  
             static int i =5;   
             int j;   
             static{   
                      System.out.println("First :"+i++);   
                  }   
  
             static{   
                      System.out.println("Sencond :" +i++);   
                  }   
                  
             public static void main(String args[]){   
                      StaticBlock s1 = new StaticBlock();   
                      StaticBlock s2 = new StaticBlock();   
                      System.out.println("Last :"+i);   
                  }   
       }  

评分

参与人数 1技术分 +1 收起 理由
老罗 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马