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

B.

[LPlanets.Planet;@15db9742
Earth
1

C.

[LPlanets.Planet;@15db9742
Planets.Planet@6d06d69c
1

D.

[LPlanets.Planet;@15db9742
Planets.Planet@6d06d69c
[LPlanets.Moon;@7852e922

E.

[LPlanets.Planet;@15db9742
Venus
0

題解

println方法會輸出傳入參數的toString方法回傳的字串。

程式第9行,要印出Planet陣列,所以字串會是「[L」加上類別的路徑和雜湊值。

程式第10行,要印出Planet物件,所以字串會類別的路徑和雜湊值。

程式第11行,要印出Planet物件的moons這個整數型態的欄位,所以會輸出整數。

所以答案是選項C。