SCJP題庫第061題


Given two files, GrizzlyBear.java and Salmon.java:
1. package animals.mammals;
2.
3. public class GrizzlyBear extends Bear{
4.   void hunt() {
5.     Salmon s = findSalmon();
6.     s.consume();
7.   }
8. }
1. package animals.fish;
2.
3. public class Salmon extends Fish {
4.   public void consume() { /* do stuff */ }
5. }
If both classes are in the correct directories for their packages, and the Mammal class correctly defines the findSalmon() method, which change allows this code to compile?
 
 
A. add import animals. mammals.*; at line 2 in Salmon.java
B. add import animals.fish.*; at line 2 in GrizzlyBearjava
C. add import animals.fish.Salmon.*; at line 2 in GrizzlyBear.java
D. add import animals. mammals.GrizzlyBear*; at line 2 in Salmon.java
 
Ans: B
 
解說:
 假如二個類別都在套件正確的目錄,並且Mammal 類別正確地定義findSalmon方法,那一項改變可讓這個程式可以被編譯?
物件參考s的型態是Salmon類別型態,要使用其中的consume方法,若是相同套件,直接就可以存(同屬一個目錄空間),但GrizzlyBear Salmon 在不同的套件,Salmon 在套件animals.fish下,因此要使用Salmon 類別有二個方式:
1.用全名 animals.fish.Salmon
2.先import animals.fish.*; import animals.fish.Salmon; 即可以在程式中直接使用Salmon,不用較冗長的全名模式。

Comments

Popular posts from this blog

Android+Google Map API v3 Geocoding(地址轉經緯度度