Saturday, October 16, 2004
[轉錄]inner class
轉錄自swanky所整理的java版精華區
隱含在其他類別內的類別定義。 內部類別的功能只會存在於所有類別內的語意範圍(lexical scope) 之內。 Inner class (內部類別) 又稱為 Nested class (巢狀類別) 是從 JAVA 1.1 開始有的語法 它的種類主要有三種: 1. member inner class:宣告在 class 內部的inner class ex. class a { class b{ } } 2. local inner class:宣告在method中的inner class, 只能存取 final 的 local variable 和 class member ex. class a { public void method () { class b { } } } 3. anonymous inner class:匿名的 inner class ex. JButtonObject.addActionListener( new ActionListener() { //沒有名字 public void actionPerformed(ActionEvent e) {} } ); 另外有一種叫 static nested inner class,不過其特性就和普通的 top-level static class是一樣的。 inner class一旦加上了 static 就被視為是top-level,因此一般在討論 inner class的 種類時,很少提到,你只要記住無論放在哪裡,static inner class 就是 outer class (就是宣告在最外面,最一般的class)如果想要更深入了解
請參考下面文章
http://www.javaworld.com.tw/jute/post/view?bid=29&id=9553
由 shumi 發表於 June 25, 2004 12:45 AM | 引用
Java 這個公司搞一個 JAVA 5 出來,回頭看一下他的技術用語
Java 稱 nested classes 為所謂的 static inner classes
Inner class (內部類別) ≠ Nested class (巢狀類別)
可是有誰真的會這樣做區分?
不還是要正名一下~
不知道我是否有誤解
Posted by: jocosn 發表於 2004-10-13 05:01 PM真的是這樣嗎? @.@
我以為inner class = nested class
至少我看過的書上沒有特別去區分兩者
http://java.sun.com/docs/books/tutorial/java/javaOO/nested.html
a nested class can be declared static (or not). A static nested class is called just that: a static nested class.
A nonstatic nested class is called an inner class...
這應該只有 Sun 陽光男孩才會這樣叫,就像 Java 5
我看以後Java 2.5 版要叫 Java 二百五。二百五真是棒~
我想他是想把普通的inner class與static inner class作個區分吧
所以我覺得還是可以用nested class來取代inner class囉~
inner class != static inner class
nested class != static nested class