1. 程式人生 > 其它 >內部類講解與認識【成員內部類VS 區域性內部類】

內部類講解與認識【成員內部類VS 區域性內部類】

技術標籤:Java 基礎知識

文章目錄:

一、 內部類的分類:

成員內部類(靜態、非靜態) 
區域性內部類 (方法內、程式碼塊內、構造器內)

成員內部類的特點

一方面作為外部類的成員:
(1) 呼叫外部類的結構。
(2)	可以被static 修飾
(3) 可以被四種不同的許可權修飾符修飾。
另一方面,作為一個類
(1) 類內可以定義屬性、方法、構造器等、
(2)	可以被final 修飾,表名此類不可以被繼承,言外之意:不使用final 修飾,就可以被繼承。
(3) 可以被abstract 修飾

成員內部類VS 區域性內部類 如何定義實戰例子:

public class InnerClassTest {
}
class Person2{
// 靜態成員內部類
static class Dog{
}
// 非靜態成員內部類
class bird{
}

public void method(){
// 方法體內的:區域性內部類
class AA{
}
}
// 程式碼塊中的:區域性內部類
{
class BB{
}
}
public void Person(){
// 區域性內部類
class cc{
}
}
}

二、 如何例項化成員內部類的物件例子演示

public class InnerClassTest {

public static void main(String[] args) {
// 有了物件之後呼叫內部的結構。
// 建立Dog例項(靜態的成員內部類)
Person2.Dog person2 = new Person2.Dog();
person2.show();
person2.name=“卡卡”;
System.out.println(“狗的名字叫:”+person2.name);
// 建立bird例項(非靜態的成員內部類)
Person2 p = new Person2();
Person2.bird bird = p.new bird();
bird.sing();
}
}
class Person2{
// 靜態成員內部類
static class Dog{
String name;
final int age =2;
public void show(){
System.out.println(“人吃飯需要”);
if (age >=2){
System.out.println(“這個是男神。。。。”);
}else if (age<=0){
System.out.println(“女神”);
}
}
}
// 非靜態成員內部類
class bird{
String name;
public void sing(){
System.out.println(“小鳥說:我有一雙美麗的翅膀。。。。”);
}
}

結果輸出

在這裡插入圖片描述

三、例子

// 建立了Comparable介面的類:區域性內部類
public Comparable getComparable(){

return new Comparable() {
	@Override
	public int compareTo(Object o) {
		return 0;
	}
};
}
}

-----------------------------------------要克服生活的焦慮和沮喪,得先學會做自己的主人-----------------------------------------