1. 程式人生 > >Java 內部類簡述

Java 內部類簡述

複製程式碼
public class OuterClass {
    private String sex;
    public static String name = "chenssy";
    
    /**
     *靜態內部類
     */
    static class InnerClass1{
        /* 在靜態內部類中可以存在靜態成員 */
        public static String _name1 = "chenssy_static";
        
        public void display(){
            /* 
             * 靜態內部類只能訪問外圍類的靜態成員變數和方法
             * 不能訪問外圍類的非靜態成員變數和方法
             
*/ System.out.println("OutClass name :" + name); } } /** * 非靜態內部類 */ class InnerClass2{ /* 非靜態內部類中不能存在靜態成員 */ public String _name2 = "chenssy_inner"; /* 非靜態內部類中可以呼叫外圍類的任何成員,不管是靜態的還是非靜態的 */ public void display(){ System.out.println(
"OuterClass name:" + name); } } /** * @desc 外圍類方法 * @author chenssy * @data 2013-10-25 * @return void */ public void display(){ /* 外圍類訪問靜態內部類:內部類. */ System.out.println(InnerClass1._name1); /* 靜態內部類 可以直接建立例項不需要依賴於外圍類 */ new InnerClass1().display();
/* 非靜態內部的建立需要依賴於外圍類 */ OuterClass.InnerClass2 inner2 = new OuterClass().new InnerClass2(); /* 方位非靜態內部類的成員需要使用非靜態內部類的例項 */ System.out.println(inner2._name2); inner2.display(); } public static void main(String[] args) { OuterClass outer = new OuterClass(); outer.display(); } } ---------------- Output: chenssy_static OutClass name :chenssy chenssy_inner OuterClass name:chenssy
複製程式碼