public class Test {
Test(){
A a = new A();
a.get();
A.getb();
}
private static void geta(){
System.out.println("getA()!!!!");
}
/*为什么静态的类必须为类部类?????*/
private static class A{
public void get(){
geta(); //非静态的调用了静态方法!!!!!!!!!!
}
public static void getb(){
geta();
}
}
public static void main(String[] args){
Test t = new Test();
}}
public void get(){
geta(); //非静态的调用了静态方法!!!!!!!!!!
}
public static void getb(){
geta();
}
}
public static void main(String[] args){
Test t = new Test();
}}
A中的非静态方法也可以调用静态方法
难道你的意思是static class class_name{}
这样好像不可以吧
2:非静态的可以调用静态方法.但是静态的函数不可以调用非静态方法.因为既然叫"非静态"方法,那么肯定是经常会变动的,如果静态函数里面调用了此方法,而静态函数针对于所有其它需要用到此静态函数的方法就不能保证其固定性和准确性了.
从另外一种角度来讲就是静态函数内存地址是固定了,非静态地址每当NEW一个类时里面的变量地址都会与另外NEW的类不同,如果静态函数需要调用非静态类里面的变量或是函数就没有办法确定需要去方法哪段内存地址,就会引起非法访问内存错误,所以JAVA在编译时就提前做也这方面的游戏规则.呵呵 ....我是这样理解的.