Java class syntax check

Java類別語法檢查

 五、請參考以下的 Java classes,解釋下列各小題的語法是否正確,如不正確請說明原因。

(每小題 5 分,共 15 分)

(一)class X { public void x( ) { ... } }

class Y extends X { public void y( ) { ... } }

class Z extends Y { public void z( ) { ... } }

(二)int count(Set<Y> s) { ... } ... count(new TreeSet<Z>( ));

int count(Set<? extends Y> s) { ... } ... count(new

TreeSet<Z>());

(三)int count(Set<? super Z> s) { for (X a : s) a.x( ); ... };


以下是對您的問題的回答:

第一個和第二個語法都是正確的。在第一個語法中,new TreeSet<Z>() 創建了一個 TreeSet,其中元素的類型是 Z。由於 Z 是 Y 的子類別,因此這個 TreeSet 可以被視為是一個 Set<Y>。在第二個語法中,Set<? extends Y> 表示一個元素類型是 Y 或其子類別的 Set。因此,這個 TreeSet<Z> 可以被視為是一個 Set<? extends Y>。

第三個語法不正確。在這個語法中,for (X a : s) 嘗試將 s 中的元素轉換為 X 類型。由於 s 中的元素可能不是 X 的子類別,因此這個轉換可能會失敗。如果您想要遍歷 s 中的元素,請使用迭代器。

希望這可以幫助您!如果您有任何其他問題或需要進一步協助,請隨時告訴我。


Comments

Popular posts from this blog

How to write data into a excel file using vbscript

Format date as yyyy-mm-dd using vbscript