java基礎04 內部類

2021-06-18 09:54:18 字數 3671 閱讀 3266

內部類(內建類,巢狀類)

1、內部類修飾符(private static )

(1)、內部類可以被private修飾。當內部類處於類的成員位置上時,可以被private修飾,將內部類在外部類中進行封裝。

(2)、內部類可以被static修飾為靜態內部類。

2、內部類訪問規則

(1)、內部類示例class outer
class inner
}

(2)、outer和inner的互訪
如上**
(i)、inner訪問outer:
a、內部類inner可以不建立outer的物件就訪問outer的成員(包括私有,因為私有在本類中有效)。
b、內部類可以直接訪問外部類的原因是,持有外部類outer的引用outer.this。

(ii)、outer訪問inner:外部類outer要訪問inner的成員則必須建立inner的物件。
class outer

}

//建立inner物件

class m_out

}

(3)、其他類直接訪問內部類inner的成員:要標示出inner所屬的類。
示例:
outer.inner in = new outer().new inner() ;//很少用,一般考試會考到。
in.m_in() ;

3、靜態內部類

(1)、當內部類被static修飾後,只能直接訪問外部類中的static成員,出現了訪問侷限。

(2)、在外部其他類中訪問靜態內部類的非靜態成員和靜態成員。

a、在外部其他類中訪問靜態內部類的非靜態成員(屬於物件呼叫方法)。
class outer

}

}
class demo

}

b、在外部其他類中訪問靜態內部類的靜態成員。(當內部類中定義了靜態成員,該內部類必須是靜態的)
outer.inner.function() ;//inner和function()都是靜態的,可以這樣用。

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

4、內部類定義原則

當描述事物時,事物的內部還有事物,該事物用內部類類描述。因為內部事物在使用外部事物的內容。

例如描述人時,心臟在人的內部。人和心臟屬於組合結構。心臟有自己的屬性和功能,可以將心臟定義在人體的內部。如

class body

//提供訪問方式。(不能隨便訪問,一般要對訪問者進行判斷)
public xingzang showxingzang
}
5、匿名內部類

5.1、內部類定義在區域性時

(1)、不可以被成員修飾符修飾。
(2)、可以直接訪問外部類中的成員,
a、可以直接訪問外部類中成員是因為還持有外部類中的引用。
b、內部類定義在區域性時,從內部類中只能訪問被final修飾的區域性變數。
示例**
class outer

}

}

}

(3)、訪問區域性變數
class outer

}

}

}
class demo

}

5.2、匿名內部類

(1)、匿名內部類其實就是乙個匿名子類物件。
(2)、new 父類或者介面()
(3)、定義內部類的前提
a、內部類必須繼承乙個類或者實現介面
abstract class xingzang
class person

}

//建立物件呼叫內部類的方法

public void function*/

//(2)、匿名子類物件呼叫方法

public void function()

}./*呼叫方法*/show() ;

或者可以這樣為其命名:父類引用 = 子類物件 ;

這樣父類引用只能呼叫父類方法,而不能呼叫子類特有的方法

xingzang xz = new xingzang()

} ;

}

}
class cat

java基礎 內部類

一 內部類 將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類,巢狀類 非static內部類可以直接訪問外部類中的成員,包括私有成員。原因 因為內部類中持有了乙個外部類的引用,引用的格式為 外部類名.this 非靜態內部類不能定義static成員 1 內部類定義在外部類的成員位置上 方法...

java基礎《內部類》

一 內部類的訪問規則 1.內部類可以直接訪問外部類中的成員,包括私有 之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用 格式 外部類名.this 2.外部類要訪問內部類,必須建立內部類物件 訪問格式 1.當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,可以直接...

java基礎 內部類

內部類 一 內部類的訪問規則 1,內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用,格式 外部類名.this 2,外部類要訪問內部類,必須建立內部類物件。例子 class outer static class inner2 publi...