成員內部類 和內部類靜態修飾
阿新 • • 發佈:2019-01-09
/* 成員內部類的修飾符: private 為了保證資料的安全性 static 為了方便訪問資料 注意:靜態內部類訪問的外部類資料必須用靜態修飾。 案例:我有一個人(人有身體,身體內有心臟。) class Body { private class Heart { public void operator() { System.out.println("心臟搭橋"); } } public void method() { if(如果你是外科醫生) { Heart h = new Heart(); h.operator(); } } } 按照我們剛才的講解,來使用一下 Body.Heart bh = new Body().new Heart(); bh.operator(); //加了private後,就不能被訪問了,那麼,怎麼玩呢? Body b = new Body(); b.method(); */ class Outer { private int num = 10; private static int num2 = 100; //內部類用靜態修飾是因為內部類可以看出是外部類的成員 public static class Inner { public void show() { //System.out.println(num); System.out.println(num2); } public static void show2() { //System.out.println(num); System.out.println(num2); } } } class InnerClassDemo4 { public static void main(String[] args) { //使用內部類 // 限定的新靜態類 //Outer.Inner oi = new Outer().new Inner(); //oi.show(); //oi.show2(); //成員內部類被靜態修飾後的訪問方式是: //格式:外部類名.內部類名 物件名 = new 外部類名.內部類名(); Outer.Inner oi = new Outer.Inner(); oi.show(); oi.show2(); //show2()的另一種呼叫方式 Outer.Inner.show2(); } }