class Outer { static int x = 3; class Inner { int x = 4; //static void function() //error ? void function() { int x = 5; // System.out.println("inner :" +Outer.this.x); System.out.println("inner :" + x); } } //static void method() //true void method() { System.out.println(x); } } public class innerClassDemo { public static void main(String[] args) { //Outer.method(); //在方法名前添加static直接调用 Outer out= new Outer(); out.method(); Outer.Inner inner = new Outer().new Inner(); inner.function(); } }问题 1. 在main方法中调用类中的方法,一般都会先实例化一个对象,再调用方法实现相应的功能,为什么不能在方法前面加上static 直接通过类名.方法名去实现功能呢?这样岂不是更好。 2. 同样的思路,为什么外部类的方法可以在前面添加static 而内部类方法前不能添加呢? |