Hej,
Mały problem mam. Mam trzy klasy.
Pierwsza to klasa Pracownik. Bardzo prosta, jedna zmienna prywatna, getter, setter i konstruktor oraz nadpisana metoda toString:
public class Pracownik {
private String nazwisko;
//getter
public String getNaziwsko() {
return nazwisko;
}
//setter
public void setNazwisko(String nazwisko)
{
this.nazwisko=nazwisko;
}
//constructor
public Pracownik(String nazwisko)
{
setNazwisko(nazwisko);
}
//toString
@Override
public String toString()
{
System.out.println("Jestem metodą klasy Pracownik");
return "Nazwisko to: "+nazwisko;
}
}
Druga klasa to klasa Fabryka.
W tej klasie chciałbym przechowywać wszystkich pracowników w jednowymiarowej tabeli.
public class Fabryka {
private Pracownik[] pracownik;
private int index=0;
//getter
public Pracownik[] getPracownik()
{
return pracownik;
}
//setter
public void setPracownik(Pracownik p)
{
p=pracownik[index];
index++;
}
//constructor
public Fabryka(int ilośćPracowników)
{
pracownik=new Pracownik[ilośćPracowników];
}
public String toString()
{
String result="";
for(int i=0;i<pracownik.length;i++)
{
System.out.println(pracownik[i]);
}
return result;
}
}
I metoda main:
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Fabryka fabryka=new Fabryka(3);
fabryka.setPracownik(new Pracownik("Kowalski"));
System.out.println(fabryka.toString());
}
}
I wszystko w porządku, kompilacja przechodzi, jednak nie tworzy obiektu, gdyż wszystkie wartości są typu null a powinien na indeksie[0] być nasz Kowalski.
Z tego wynika, iz konstruktor klasy Fabryka spełnia swoją role, gdyż tworzona jest jednowymiarowa tablica o o trzech wierszach.
Coś nie tak jest z setterem. Oczywiście wiem, iż bez problemu mógłbym to rozwiązać opierając się na gotowcach z netu jednak wolę wiedzieć gdzie jest błąd w moim myśleniu.