推 adrianshum: 意思上不太一樣。簡單一句,inner class 能static 就s 10/14 07:08
→ adrianshum: tatic 10/14 07:08
→ ssccg: static/nonstatic inner class的最大差別是在nonstatic 10/14 10:05
→ ssccg: inner class的instance一定要綁定一個外層class的instance 10/14 10:05
→ ssccg: 使用外部成員的限制只是因為這點造成的自然結果 10/14 10:06
→ ssccg: 這跟nonstatic method裡有this可以用一樣,nonstatic inner 10/14 10:16
→ ssccg: class中可使用outer class的this,但相對的new的時候要先有 10/14 10:18
→ ssccg: outer class的instance,所以是從outer class變數(或this) 10/14 10:20
→ ssccg: 後面加上new 10/14 10:21
→ ssccg: 而static inner class除了存取權(跟outer class互相都能存 10/14 10:21
→ ssccg: 取到private層級)外,就是個獨立class,instance間沒有關係 10/14 10:23
→ ssccg: 兩者共通的用途是class本身可以設成private/protected 10/14 10:27
→ ssccg: 控制要不要讓其他class用而已 10/14 10:27
→ kiwistar: 感謝s大,所以說static inner class和獨立class差不多只 10/14 11:22
→ kiwistar: 差在static還可以取用outer class的private content, 獨 10/14 11:22
→ kiwistar: 立則不行,是嗎? 10/14 11:22
推 Killercat: 其實只有一個原則「任何用不到上層class的inner class 10/16 13:27
→ Killercat: 都該宣告為static」如此而已 10/16 13:27
→ Killercat: 除非你把它當作參數傳進來 10/16 13:28