Given the following code for a Planet object:
public class Planet {
public String name;
public int moons;
public Planet(String name, int moons) {
this.name = name;
this.moons = moons;
}
}
And the following main method:
public static void main(String[] args) {
Planet[] planets = {
new Planet("Mercury", 0),
new Planet("Venus", 0),
new Planet("Earth", 1),
new Planet("Mars", 2)
};
System.out.println(planets);
System.out.println(planets[2]);
System.out.println(planets[2].moons);
}
What is the output?
A.
planets
Earth
1
Earth
1
B.
[LPlanets.Planet;@15db9742
Earth
1
Earth
1
C.
[LPlanets.Planet;@15db9742
Planets.Planet@6d06d69c
1
Planets.Planet@6d06d69c
1
D.
[LPlanets.Planet;@15db9742
Planets.Planet@6d06d69c
[LPlanets.Moon;@7852e922
Planets.Planet@6d06d69c
[LPlanets.Moon;@7852e922
E.
[LPlanets.Planet;@15db9742
Venus
0
Venus
0
題解
println方法會輸出傳入參數的toString方法回傳的字串。
程式第9行,要印出Planet陣列,所以字串會是「[L」加上類別的路徑和雜湊值。
程式第10行,要印出Planet物件,所以字串會類別的路徑和雜湊值。
程式第11行,要印出Planet物件的moons這個整數型態的欄位,所以會輸出整數。
所以答案是選項C。