Problem przy tworzeniu obiektu

0

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.

0

Zobacz tutaj (setPracownik())

p=pracownik[index];

Czyli to co zostaje przekazane zastępujesz elementem z tablicy.

Tobie chodziło Ci o:

pracownik[index] = p;
0

Matko, a ja od godziny próbowałem rozkminić gdzie jest błąd :E
Masz rację, teraz działa. Strasznie prosty błąd a jednak jak go nie przyuważysz to zostaje ktoś bardziej spostrzegawczy na forum. Dzieki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1