java中类前面加static是什么意思?麻烦帮忙解释下下面程序运行的过程,谢谢!

public class SuperClass{
String a = "hello";
class SubClassA extends SuperClass{}
static class SubClassB extends SuperClass{
String a = "aaa";
}
public static void main(String args[]){
SubClassB bar=new SubClassB();
System.out.println(bar.a);
}
}

第1个回答  2012-01-10
static 是静态的。因为main是静态的,所以它里面的函数也是静态的。又因为近者亲,输入的应该是SubClassB里面的变量。
第2个回答  2012-01-10
程序首先执行main函数
然后创建SubClassB 实例,因为SubClassB是SuperClass的子类,会先调用SuperClass的默认构造函数,然后调SubClassB的默认构造函数,程序最终输出 aaa
第3个回答  2012-01-10
静态类啊。可以直接使用,不用实例化
第4个回答  2012-01-10
SubClassA 和SubClassB是主类SuperClass的成员内部类,同时这两个类继承了主类SuperClass。
这里要注意,由于SubClassA 和SubClassAB类似于主类的成员变量,所以当主类SuperClass没有实例化对象前(即new SuperClass()),主类对象是不存在的,当然A和B这两个成员内部类也不存在啦。
static的作用是静态化,能够在它的类的任何对象创建之前被访问,而不必引用任何对象
加上static之后,则可把SubClassB看成已经存在了的类。
执行主函数时,new SubClassB()实例化一个对象之后,如楼上所言,先调用父类的构造方法,a=“hello”,再执行SubClassB的默认构造方法,a=“aaa”,最后输出aaa。
这个是我的理解,希望对你有帮助本回答被提问者采纳
相似回答