Java學習10 內部類

2021-08-09 19:14:27 字數 2042 閱讀 4977

將乙個類定義到另外乙個類中,對裡面那個類就稱為內部類(內建類,巢狀類)。

內部類可以直接訪問外部類中的成員,包括私有成員,之所以可以直接訪問外部類中的成員,是因為內部類中持有乙個外部類的引用,格式:外部類名.this;

外部類要訪問內部類的成員必須要建立內部類的物件。

class outer

}void method()

}class demo

} //x = 6

當內部類定義在外部類的成員位置上,而且非私有,可以在外部其它類中直接建立內部類物件,格式:外部類名.內部類名 變數名 = 外部類物件.內部類物件(outer.inter in = new outer().new inter();)

class outer

}}class outer2

}class demo

}

當內部類在成員位置上,就可以被成員修飾符所修飾:

private :將內部類在外部類中進行封裝;

static:內部類就具備static的特性。當內部類被static修飾後,只能直接訪問外部類中的static成員,出現了訪問許可權。

在外部其他類中,如何直接訪問static內部類的非靜態成員呢?

new outer.inter().function();

class outer

}}class demo

}

在外部其他類中,如何直接訪問static內部類的靜態成員呢?

outer.inter().function();

注意:當內部類中定義了靜態成員,該內部類必須是static的;

當外部類中的靜態方法訪問內部類時,內部類也必須是靜態的。

class outer

}public

static

void

method()//外部類中的靜態方法

}class demo

}

不可以被成員修飾符修飾;

可以直接訪問外部類中的成員(x),因為還持有外部類中的引用,但是不可以訪問他所在的區域性中的變數(y),只能訪問被final修飾的區域性變數(final int y = 6)。

class outer

}new inter().function();//有物件才會執行

}}class demo

}//x = 4

匿名內部類其實就是內部類的簡寫形式;

定義匿名內部類的前提:內部類必須是繼承乙個類或者實現介面;

匿名內部類的格式:new 父類或介面();

其實匿名內部類就是乙個匿名子類物件,而且此物件有點胖,可以理解為帶內容的物件;

匿名內部類中定義的方法最好不要超過3個。

/*class outer

}void method()

}class demo

}//x = 4*/

//上述**可以用匿名內部類重寫

abstract class showdemo

class outer

}.show();

}}public

class

demo

}//x = 4

inte***ce inter

class test

// }

// static inter function()

//

//匿名內部類實現

static inter function()};}

}class demo

}

class demo

代表object的子類物件

//new object(); //代表object物件

new object() //代表object的子類物件

}.function();

}}

JAVA學習筆記10 內部類 匿名內部類

內部類 內部類可以直接訪問外部類成員 包括私有成員 外部類要訪問內部類中的成員必須要建立內部類的物件 class outer public void method 內部類一般用於類的設計 分析事物時 發現該事物描述中還有事物 而且這個事物還在訪問被描述事物的內容 這時就可以將還有的事物用內部類來描述...

JAVA學習 內部類

靜態成員不能訪問非靜態成員。內部類可以訪問外部類private成員,反之不成立。非靜態內部類不能擁有靜態成員。介面內部類預設為public static。子類繼承內部類父類,會自動呼叫非靜態內部類構造器,此時子類構造器必須存在乙個外部類物件。inte ce jiekou abstract class...

Java內部類 Java例項內部類

例項內部類是指沒有用 static 修飾的內部類。示例 如下 public class outer 上述示例中的 inner 類就是例項內部類。例項內部類有如下特點。1 在外部類的靜態方法和外部類以外的其他類中,必須通過外部類的例項建立內部類的例項。public class outer inner1...