1. 程式人生 > >成員內部類使用注意事項

成員內部類使用注意事項

package innerclass;

/**
 * 外部類只能使用public 和包兩種許可權修飾,但是內部類可以使用private protected public 和包修飾,個人認為內部類被當成外部類的成員使用,所以可以有多種訪問許可權
 */
public class InnerClassTrain {

    private String name="test";
    private Integer id=0;

    public static void main(String[] args){
        //Inner inner= new Inner(); 注意這裡這樣寫是錯誤的,在static方法中不可以建立內部類的物件,因為建立內部類物件需要一個外部類物件,
        //而且該方法為static方法,不能引用this.
        InnerClassTrain ict = new InnerClassTrain();
        Inner inner = ict.new Inner();


    }

    public void test(){
        //這裡這樣寫是可以的,因為預設使用this物件去new 內部類物件,該方法並不是static方法,可以引用this
        Inner inner = new Inner();
    }

    class Inner{
        //內部類中可以訪問其外部類的所有成員(屬性和方法)
        public void test(){
            System.out.print(name+id);
        }
    }
}