Problem przy tworzeniu obiektu.

0

Witam Szanownych Forumowiczów
Mam pewien problem ze stworzeniem obiektu.
Mianowicie mam trzy klasy.
Pierwsza z nich to klasa OSOBA. Ma dwie zmienne prywatne:imię i nazwisko.

public class Osoba {
    private String imie;
    private String nazwisko;

    //getter
    public String getImie()
    {
        return imie;
    }
    public String getNazwisko()
    {
        return nazwisko;
    }
    //setters
    public void setImie(String imie)
    {
        this.imie=imie;
    }
    public void setNazwisko(String nazwisko)
    {
        this.nazwisko=nazwisko;
    }
    public Osoba(String imie, String nazwisko)
    {
        setImie(imie);
        setNazwisko(nazwisko);

    }

    @Override
    public String toString()
    {

        return imie+nazwisko;
    }

}

Druga klasa to klasa Firma.
W tej klasie zawarłem metodę tworzenia obiektów typy OSOBA:


public class Firma {
    private Osoba pracownik;

    public Osoba getPracownik() {
        return pracownik;
    }

    public void setPracownik(Osoba pracownik) {
        this.pracownik = pracownik;
    }

    //constructor
    public Firma()
    {

    setPracownik(pracownik);
    }

    //addPracownik
    public void addPracownik(Osoba osoba)
    {
        osoba=getPracownik();

    }

    @Override
    public String toString()
    {
        return super.toString()+" "+pracownik;
    }

}

Stworzyłem też klasę MAIN taką jak poniżej:

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Firma firma=new Firma();
        firma.addPracownik(new Osoba("Jan","Kowalski"));
        System.out.print(firma);

    }

}

I niestety stworzony obiekt jest pusty, jest zwracana tylko wartość referencji:

[email protected] null

Gdzie mam błąd w kodzie, że tworzę pusty obiekt?

0

Debugger i jedziesz.
Masz błąd w addPracownik(Osoba osoba).

0
szweszwe napisał(a):

Debugger i jedziesz.
Masz błąd w addPracownik(Osoba osoba).

Używam Eclipse.
Nie wskazuje żadnego błędu :(

0

Błąd implementacyjny :] Zobacz po prostu jak działa ta metoda.

0
szweszwe napisał(a):

Błąd implementacyjny :] Zobacz po prostu jak działa ta metoda.

Dzięki za zainteresowanie.
Metoda działa w następujący sposób:
1.Tworzy pusty obiekt klasy Person
2.Metoda print drukuje wartość referencji i zwraca wartość obiektu czyli null:
"[email protected] null"

0

Nie nie. Ta metoda robi coś takiego osoba=getPracownik(); Czyli do stworzonego i przekazanego pracownika przypisuje pracownika aktualnego czyli null. Generalnie z private Osoba pracownik nic się nie dzieje.

0
szweszwe napisał(a):

Nie nie. Ta metoda robi coś takiego osoba=getPracownik(); Czyli do stworzonego i przekazanego pracownika przypisuje pracownika aktualnego czyli null. Generalnie z private Osoba pracownik nic się nie dzieje.

Masz absolutną rację, nie spojrzałem na to z tej strony :)
Czyli metoda "public void addPracownik(Osoba osoba)" jako argument przyjmuje obiekt typu Osoba. Teraz pytanie co zawrzeć wewnątrz metody aby tworzyła wymagany obiekt...

0

No tak jak reszta setterów. Ustawiasz pracownika czyli:

public void addPracownik(Osoba osoba) {
   this.pracownik =osoba;
}
0
szweszwe napisał(a):

Nie nie. Ta metoda robi coś takiego osoba=getPracownik(); Czyli do stworzonego i przekazanego pracownika przypisuje pracownika aktualnego czyli null. Generalnie z private Osoba pracownik nic się nie dzieje.

Dzięki wielkie szweszwe.

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