這是被引用,因爲變量名和相冊不存在於主程序中,因爲它是靜態的,這意味着它不能訪問實例級別的成員。您將需要歌手類的一個實例,像這樣:
public static void main(String[] args) {
Singer s = new Singer();
System.out.println("Name of the singer is " + s.name);
System.out.println("Album information stored for " + s.album);
}
但是,除非你有一個公共訪問修飾符聲明你的名字/專輯的成員,上面的代碼將無法編譯。我建議爲每個成員寫一個getter(getName(),getAlbum()等),以便從封裝中受益。像這樣:
class Singer {
private String name;
private String album;
public Singer() {
this.name = "Whitney Houston";
this.album = "Latest Releases";
}
public String getName() {
return this.name;
}
public String getAlbum() {
return this.album;
}
public static void main(String[] args) {
Singer s = new Singer();
System.out.println("Name of the singer is " + s.getName());
System.out.println("Album information stored for " + s.getAlbum());
}
}
另一種方法是將名稱和專輯聲明爲靜態,然後您可以按照您最初的設計方式引用它們。
'... + s.name); ... + s.album);' – khachik 2010-11-19 16:01:57
順便說一句,上面的代碼將編譯並運行良好,如果名稱是私有的,因爲'main'也屬於'Singer'。 – khachik 2010-11-19 16:05:04