to dlatego nazwa zmienne i Album nie istnieje w głównej procedurze, ponieważ jest statyczny, co oznacza, że nie może uzyskać dostępu do członków na poziomie instancji. Trzeba będzie instancję klasy Singer coś takiego:
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);
}
Jednak chyba zadeklarować członków Nazwa/Album z modyfikatorem publicznego dostępu, powyższy kod nie powiedzie się skompilować. Poleciłem napisanie gettera dla każdego członka (getName(), getAlbum(), itp.), Aby skorzystać z enkapsulacji. Tak:
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());
}
}
Inną alternatywą byłoby zadeklarować nazwę i album jako statyczne, można odwoływać się do nich w sposób pierwotnie przeznaczone.
'... + s.name); ... + s.album); ' – khachik
BTW, powyższy kod będzie się kompilował i działał poprawnie, jeśli nazwa jest prywatna, ponieważ' main' również należy do 'Singera'. – khachik