JavaÄÚ²¿ÀࣨInner Class£©Ïê½â
¼òµ¥µÄ˵£¬ÄÚ²¿£¨inner£©ÀàÖ¸ÄÇЩÀඨÒå´úÂë±»ÖÃÓÚÆäËüÀඨÒåÖеÄÀࣻ¶ø¶ÔÓÚÒ»°ãµÄ¡¢ÀඨÒå´úÂ벻ǶÌ×ÔÚÆäËüÀඨÒåÖеÄÀ࣬³ÆÎª¶¥²ã£¨top-level£©Àà¡£¶ÔÓÚÒ»¸öÄÚ²¿À࣬°üº¬Æä¶¨Òå´úÂëµÄÀà³ÆÎªËüµÄÍⲿ£¨outer£©Àà¡£
1 Static member class£¨¾²Ì¬³ÉÔ±Àࣩ
ÀàÉùÃ÷Öаüº¬“static”¹Ø¼ü×ÖµÄÄÚ²¿Àà¡£ÈçÒÔÏÂʾÀý´úÂ룬
Inner1/Inner2/Inner3/Inner4¾ÍÊÇOuterµÄËĸö¾²Ì¬³ÉÔ±Àà¡£¾²Ì¬³ÉÔ±ÀàµÄʹÓ÷½Ê½ÓëÒ»°ã¶¥²ãÀàµÄʹÓ÷½Ê½»ù±¾Ïàͬ¡£
public class Outer{
//just like static method, static member class has public/private/default access privilege levels
//access privilege level: public
public static class Inner1 {
public Inner1() {
//Static member inner class can access static method of outer class
staticMethod();
//Compile error: static member inner class can not access instance method of outer class
//instanceMethod();
}
}
//access privilege level: default
static class Inner2 {
}
//access privilege level: private
Ïà¹ØÎĵµ£º
Java³ÉÔ±µÄĬÈÏ·ÃÎÊ¿ØÖÆ
ÎÒ¶¥¶ÔÓÚÒ»¸öClassµÄ³ÉÔ±±äÁ¿»ò³ÉÔ±º¯Êý£¬Èç¹û²»ÓÃpublic, protected, privateÖеÄÈκÎÒ»¸öÐÞÊΣ¬ÄÇô¸Ã³ÉÔ±»ñµÃ“ĬÈÏ·ÃÎÊ¿ØÖÆ”¼¶±ð£¬¼´package access £¨°ü·ÃÎÊ£©¡£
ÊôÓÚpackage accessµÄ³ÉÔ±¿ÉÒÔ±»Í¬Ò»¸ö°üÖÐµÄÆäËûÀà·ÃÎÊ£¬µ«²»Äܱ»ÆäËû°üµÄÀà·ÃÎÊ¡£
° ......
JAVAÖеĴ«µÝ¶¼ÊÇÖµ´«µÝÂð£¿ÓÐûÓÐÒýÓô«µÝÄØ£¿
ÔڻشðÕâÁ½¸öÎÊÌâǰ£¬ÈÃÎÒÃÇÊ×ÏÈÀ´¿´Ò»¶Î´úÂ룺
Java´úÂë
public class ParamTest {
// ³õʼֵΪ0
protected int num = 0;
// Ϊ·½·¨²ÎÊýÖØÐ¸³Öµ
public void change(int i) {
i = 5;
}
// Ϊ·½·¨²ÎÊýÖØÐ¸³Öµ
public void change(ParamTest t) {
P ......
class TestTryFinallyC {
public static void main(String[] args) {
System.out.println(testt());
}
public static int testt() {
int x = 99;
try {
return x;
}finally {
x = 8;
}
}
}
ijÄêijÔµÄijһÌ죬 ......
1£©Java Language Specification, Third Edition (by James Gosling)
±¾ÊéÓÉJava¼¼ÊõµÄ·¢Ã÷Õß±àд£¬ÊÇJava TM±à³ÌÓïÑÔµÄȨÍþÐÔ¼¼ÊõÖ¸ÄÏ¡£Èç¹ûÄãÏëÖªµÀÓïÑÔÖ®¹¹ÔìµÄ¾«È·º¬Ò壬±¾ÊéÊÇ×îºÃµÄ×ÊÔ´¡£
&nbs ......