內部類不能定義static屬性???
public?class?homework?{ public?int?b=100; public?class?Inner{ private?static?int?a=19;//這里報錯了 public?void?show(){ System.out.println("內部成員a"+a); System.out.println("外部成員b"+b); } } public?void?print(){ Inner.a=10; Inner?i=new?Inner(); i.show(); } }
2016-10-04
public class homework {
? ? public static int b=100;
? ? public static class Inner{
? ? private static int a=19;
? ? public void show()
? ? {
? ? System.out.println("內部成員a"+a);
? ? System.out.println("外部成員b"+b);
? ? }
? ? }
public void print()
{
Inner.a=10;
Inner i=new Inner();
i.show();
}
}
內部類定義一個static的變量,內部類Inner也需要定義成static型,一旦Inner定義成static型,要調用外部類的變量,b變量也需要定義成static型,最終在你的代碼的基礎上加了兩個static字符,希望對你有用
2016-10-04
public class homework {
?public int b=100;
?public class Inner{
??? private int a = 19;
??public void show(){
??? System.out.println("內部成員a"+a);
???????????? System.out.println("外部成員b"+b);
??}
?}
?public void print(){
??Inner i=new Inner();
??i.a=10;
??i.show();
?}
?public static void main(String[] args) {
??test test=new test();
???? test.print();
?}
}
我是這樣改的,貌似public內部類中不能聲明static變量