內部類的規則:
1.內部類可以直接訪問外部類中的成員,包括私有。
之所以可以直接訪問外部類中的成員,是因為內部類中持有乙個外部類的引用,格式:外部類名.this
2.外部類要訪問內部類,必須建立內部類物件
訪問格式:
1.當內部類定義在外部類的成員位置了,而且非私有,可以在外部其他類中。
可以直接建立內部類物件。
格式:外部類類名.內部類名 變數名= new 外部類物件.new 內部類物件。
outer.inner out = new outer().new inner();
2.當內部類在成員位置上,就可以被成員修飾符所修飾,
比如private:將內部類在外部類中進行封裝。
static:內部類就具備了static的特性。
當內部類被static 修飾後,只能訪問外部類中的static成員。出現了訪問侷限。
在外部其它類中,如何訪問static內部類的非靜態成員:
new outer2.inner().funciton();
在外部其它類中,如何訪問static內部類的靜態成員:
outer2.inner.funciton();
注意:當內部類中的定義了static成員,該內部類必須是靜態的。
當外部類中的靜態方法訪問內部類時,內部類也必須是靜態的。
當描述事物時,事物的內部還有事物,該事物用內部類來描述
因為內部事務在使用外部使用的內容。
class body }}
public class innerclassdemo
}靜態內部內**:
package com.heima.inner;
import com.heima.inner.outer.inner;
class outer2 }}
public class innerclassdemo2
}
區域性內部類:
內部類定義在區域性時,
1.不可以被成員修飾符修飾
2.可以直接訪問外部類中的成員,因為還持有外部類中的引用。
但是不可以訪問訪問它所在的區域性中(方法中)的變數。只能訪問被final修飾的區域性變數。
package com.heima.inner;
/** * 區域性內部類
* * @author zp
* */
class outer3
} new inner().funtion(); }}
public class innerclassdemo3
}
匿名內部類:
1.匿名內部類其實就是內部類簡寫格式。
2.定義匿名內部類的前提:
內部類必須繼承乙個類或者實現乙個介面。
3.匿名內部類的格式: new 父類 或者 介面().
4.其實匿名內部類就是乙個匿名子類物件。而且有點胖。可以理解為帶內容的物件,匿名物件對方法只能呼叫一次。
5.匿名內部類中定義的方法最好不要超過3個。
匿名內部類**:
package com.heima.inner;
/** * 匿名內部類
* * @author
* */
abstract class absdemo
class outer4
void abc()
}.show(); }}
public class innerclassdemo4
}
package com.heima.inner;
inte***ce inter
class test
}; }}
public class innerclassdemo5 ;這樣寫是錯的,因為object沒有show();
public void show()
}.show();
}}
java中內部類
下面我列出個程式,能看懂這個程式的錯誤相信對內部類的理解就變得容易多了 class innerclassdemo6 public void method public static void main string args 在這個程式中有兩個錯誤的地方 另外乙個程式,補足程式,用到匿名內部類的知識...
JAVA中的內部類 方法內部類
方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。下邊的例子 外部類 public class helloworld 建立方法內部類的物件 min...
Java內部類 Java例項內部類
例項內部類是指沒有用 static 修飾的內部類。示例 如下 public class outer 上述示例中的 inner 類就是例項內部類。例項內部類有如下特點。1 在外部類的靜態方法和外部類以外的其他類中,必須通過外部類的例項建立內部類的例項。public class outer inner1...