Przekazywanie obiektu do innej klasy

0

Mam taką tresc zadania. "Zdefiniuj klasę Pracownik. Następnie zdefiniuj klasę Firma, która
by przechowywała w tablicy spis wszystkich pracowników (możesz założyć, że liczba
pracowników nie przekracza 100). Zdefiniuj metody dodawania nowych pracowników do firmy
oraz wypisywania aktualnego spisu pracowników. Zastanów się, jak przy tym ostatnim zadaniu
rozdzielić odpowiedzialności pomiędzy obie klasy."

Moj problem polega na tym ze nie wiem jak przekazac obiekt "Pracownicy" do innej klasy, gdzie chce go zapisac w tablicy;

klasa pracownicy 

package pracownicyfirm;
public class Pracownicy {
    
    private String imie;
     private String nazwisko;
    private int wiek;
    private String stanowisko;

    public Pracownicy(String imie,String nazwisko, int wiek, String stanowisko){
    this.setImie(imie);
    this.setNazwisko(nazwisko);
    this.setWiek(wiek);
    this.setStanowisko(stanowisko);
    }
    
   
    public String getImie() {
        return imie;
    }

... i tak dalej
        
 
}




klasa Firma 

package pracownicyfirm;


public class Firma {
  
    Firma[] dane = new Firma[10];  
public  Firma(String imie, String nazwisko, int wiek, String stanowisko){
for(int i=0; i<dane.length;i++){
dane[i] = new Firma(imie, nazwisko, wiek, stanowisko);
}
}

   
}

 
0

Zrób w klasie Firma metodę która jako argument przyjmuje obiekt Pracownicy.

0
package pracownicyfirm;

public class Firma {
 
    Pracownik[] osoby = new Pracownik[100];  
    public  Firma(){
       for(int i=0; i<osoby.length;i++){
       ...
       osoby[i] = new Pracownik(imie, nazwisko, wiek, stanowisko);
   }
}
0

Ja tam widzę, new Firma() a nie new Pracownik z odpowiednimi argumentami oraz tablicę obiektów Firma a nie Pracownik.

0
public class Firma {
  
    Firma[] dane = new Firma[10];  
public  Firma(){
for(int i=0; i<dane.length;i++){   
    dane[i] = new Firma(imie, nazwisko, wiek, stanowisko);  // tutaj wywala blad
}

}
}

Natomiast jesli chodzi o metode to nie mam pojecia jak to powinno wygladac, bo nic mi nie dziala.

0

Dlaczego uparcie chcesz tworzyć obiekt Firma zamiast Pracownik? Przecież @bogdans pokazał Ci nawet gotowy kod a Ty dalej swoje.

0

Sory, pogubilem sie w tym wszystkim i nie do konca was zrozumialem teraz mam dobrze. Tylko musialem zmienic z "Pracownik" na "Pracownicy" bo wywalalo blad. Teraz gdzie sa te kropki co mam zrobic ?

public class Firma {
 
    Pracownicy[] osoby = new Pracownicy[100];  
    public  Firma(){
       for(int i=0; i<osoby.length;i++){
       ...
       osoby[i] = new Pracownicy(imie, nazwisko, wiek, stanowisko);  // tutaj wywala blad dlaczego ?
   }
}
}
1

Przeczytaj jeszcze raz zadanie, klasa ma się nazywać Pracownik.
Wymyślić jakieś dane, np.

new Pracownik("Jan","Kowalski",93,"kaskader");

albo odpytać użytkownika programu.

0

Tak, źle nazwalem klase ale zmienilem juz nazwe. Stworzylem juz taką osobe w klasie głównej.

package pracownicyfirm;

public class PracownicyFirm {
    public static void main(String[] args) {
      Pracownik osoba1 = new Pracownik("Adam","kowal",5,"dyrektor");
      
    }
    
}
0

I co teraz ? Prosilbym o wytlumaczenie co powinno byc w tych kropkach ? Jak przekazać obiekt Pracownik do innej klasy ?

1

Pojawiła się nowa klasa.

package pracownicyfirm;
 
public class Firma {
 
    Pracownik[] osoby = new Pracownik[100];
    int nrPracownika = 0;  
    public  Firma(){
       for(int i=0; i<osoby.length;i++){
   }
   ...
   public void dodajPracownika(Pracownik pracownik){
       osoby[nrPracownika++] = pracownik;
   }
}

public class PracownicyFirm {
    public static void main(String[] args) {
      Firma firma = new Firma(); 
      Pracownik osoba1 = new Pracownik("Adam","kowal",5,"dyrektor");
      firma.dodajPracownika(osoba1);
    }
 }

}

0

Juz prawie to rozumiem, tylko moglbys wyjasnic czemu dales tam trzy kropki i nic nie ma w petli ? Petla przyda sie do wyswietlania danych tak ?

0

Za mało wyrzuciłem.

package pracownicyfirm;
 
public class Firma {
 
    Pracownik[] osoby = new Pracownik[100];
    int nrPracownika = 0;  
    public  Firma(){
    }
   public void dodajPracownika(Pracownik pracownik){
       osoby[nrPracownika++] = pracownik;
   }
}
0

Dzieki @bogdans :)

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