在方法和作用域內的內部類

2021-07-15 16:45:39 字數 982 閱讀 9589

可以在乙個方法裡面或者在任意的作用域內定義內部類。這麼做有兩個理由。

1)你實現了某型別的介面,於是可以建立並返回對其的引用。

2)你要解決乙個複雜的問題,想建立乙個類來輔助你的方案,但是又不希望這個類是公共可用的。

第乙個例子展示了在方法的作用域內(而不是其他類的作用域內)建立乙個完整的類。這被稱作區域性內部類: 

//:nesting a class within a method

public class parcel5

public string readlabel()

}return new pdestination(s);

}public static void main(string args)

}

pdestination類是的destination()方法的一部分,而不是parcel5的一部分。所以,在destination()之外不能訪問pdestination.注意出現在return語句中的轉型----返回的是destination的引用,它是pdestination的基類。

下面的例子展示了如何在任意的作用域內嵌入乙個內部類

public class parcel6

string getslip()

}tackingslip ts = new trackingslip("slip");

string s = ts.getslip();

}//cannot use it here! out of scope

}public void track()

public static void main(string args)

}

trackingslip類被嵌入在if語句的作用域內,這並不是說該類的建立是有條件的,它其實與別的類一起編譯過了。然而,在定義trackingslip的作用域外,它是不可用的。除此之外,它與普通的類一樣。

JAVA中的內部類 方法內部類

方法內部類就是內部類定義在外部類的方法中,方法內部類只在該方法的內部可見,即只在該方法內可以使用。由於方法內部類不能在外部類的方法以外的地方使用,因此方法內部類不能使用訪問控制符和 static 修飾符。下邊的例子 外部類 public class helloworld 建立方法內部類的物件 min...

有名內部類和匿名內部類的用法

1 分類 有名內部類分為靜態的和非靜態的 2 用法 public class test 有名靜態內部類 static class tt public static void main string args 1 定義 沒有名字的類,不能單獨存在 2 用法 一定和創造物件一起存在 建立方法 new 父...

內部類和外部類方法間的互相呼叫

內部類呼叫外部類的方法 外部呼叫內部類的方法1.使用static可以宣告乙個內部類,可以直接在外部呼叫 定義外部類 public class outer 使用static定義內部類 static class inner public class test 2.不使用statc宣告乙個內部類 使外部呼...