方法內部類如下:
class outer
}
}}
a、方法內部類只能在定義該內部類的方法內例項化,不可以在此方法外對其實例化。
b、方法內部類物件不能使用該內部類所在方法的非final區域性變數。
因為方法的區域性變數位於棧上,只存在於該方法的生命期內。當乙個方法結束,其棧結構被刪除,區域性變數成為歷史。但是該方法結束之後,在方法內建立的內部類對 象可能仍然存在於堆中!例如,如果對它的引用被傳遞到其他某些**,並儲存在乙個成員變數內。正因為不能保證區域性變數的存活期和方法內部類物件的一樣長, 所以內部類物件不能使用它們。
下面是完整的例子:
package com.inner;
/** * created with intellij idea.
* user: 菜鳥大明
* date: 14-6-29
* time: 下午3:28
* to change this template use file | settings | file templates.
*/public class outer4
}inner in = new inner();
in.seeouter();
}public static void main(string args)
}
c、方法內部類的修飾符。
與成員內部類不同,方法內部類更像乙個區域性變數。
可以用於修飾方法內部類的只有final和abstract。
package com.inner;
/** * created with intellij idea.
* user: 菜鳥大明
* date: 14-6-29
* time: 下午3:29
* 方法內部類的abstract內部類
*/public class outer5
new inner()
}.sayhello();
}public static void main(string args)
}
d、靜態方法內的方法內部類。
靜態方法是沒有this引用的,因此在靜態方法內的內部類遭受同樣的待遇,即:只能訪問外部類的靜態成員。
package com.inner;
/** * created with intellij idea.
* user: 菜鳥大明
* date: 14-6-29
* time: 下午3:33
* 靜態方法內的方法內部類。
*/public class outer6
}inner in = new inner();
in.seeouter();
}public static void main(string args)
}
內部類(成員內部類 靜態內部類 方法內部類)
一 成員內部類 最常見的內部類就是成員內部類,也稱作普通內部類 2 inner類中定義的test 方法可以訪問outer類中的資料,不受訪問控制符的影響。3 定義了成員內部類後,必須使用外部類物件來建立內部類物件,而不能直接去 new 乙個內部類物件,即 內部類 物件名 外部類物件.new 內部類 ...
方法內部類(區域性內部類)
關於內部類,所謂內部類,就是乙個類裡面再寫了乙個類,和c語言裡面的巢狀關係很相似,我就介紹一下方法內部類 一 方法內部類 又名區域性內部類 由名字可知,該內部類是寫在乙個方法裡面的,其用法如下 1.方法內部類的地位和方法裡面的區域性變數相似,所以不能用public等修飾詞修飾 2.方法內部類只能在宣...
內部類學習筆記
案例演示 成員內部類使用 public class test class outer 案例演示 靜態內部類使用 public class test class outer 案例演示 區域性內部類使用 public class test class outer 建立區域性內部類物件 inner inn...