關於內部類 外部類面試題
阿新 • • 發佈:2018-12-26
1 關於內部類 外部類的成員訪問
需求:
要求請填空分別輸出30,20,10。
外部類和內部類沒有繼承關係!
題目程式碼
class Outer7 {
public int num = 10;
class Inner7 {
public int num = 20;
public void show() {
int num = 30;
}
}
}
public class InnerClassTest {
public static void main(String[] args) {
Outer7.Inner7 oi = new Outer7().new Inner7();
oi.show();
}
}
答案
public void show() {
int num = 30;
System.out.println(num);//區域性變數訪問 30
System.out.println(new Inner7().num); //或者 System.out.println(this.num); 20 System.out.println(new Outer7().num);//或者 Outer7.this.num;10 }
2需求:
匿名內部類面試題:
按照要求,補齊程式碼
interface Inter { void show(); }
class Outer { //補齊程式碼 }
class OuterDemo {
public static void main(String[] args) {
Outer.method().show();
}
}
要求在控制檯輸出”HelloWorld”
程式碼答案
interface Interr2{
public abstract void show();
}
class Outerr2{
public static Interr2 method(){
Interr2 i=new Interr2() {
@Override
public void show() {
// TODO 自動生成的方法存根
System.out.println(" hello word");
}
};//因為是Interr2 i=new Interr2();
return i;
}
}
public class mianshi {
public static void main(String[] args) {
// TODO 自動生成的方法存根
Outerr2.method().show();
//Outerr2.method().show();分析:
//Outerr2.method() 一個類類名可以呼叫方法,則該方法是靜態的,一個方法又.另外一個方法
//坑定方法返回了一個物件,呼叫的該show方法不是Outerr2類的,而是接口裡面的,就必須想到內部類
}
}