[Java] Usuwanie elementów z tablicy wypełnionej obiektami

hdw3
Użytkownik
Użytkownik
Posty: 19
Rejestracja: 11 gru 2016, o 16:12
Płeć: Mężczyzna
Podziękował: 11 razy

[Java] Usuwanie elementów z tablicy wypełnionej obiektami

Post autor: hdw3 »

Mam za zadanie stworzyć 2 metody, jedna wpisuje pracownika na listę(zatrudnia), a druga wypisuje pracownika z listy(zwalnia). Z drugą metodą mam problem, ale żeby go przedstawić najpierw pokaże kod.(Pracownicy dzielą się na Robotników i Urzędników i zadanie wymaga, aby byli zapisani w tablicy).

Kod: Zaznacz cały

class Pracownik{

    
    String nazwisko;
    double etat;

    Pracownik(String nazwisko, double etat)
    {
        this.nazwisko=nazwisko;
        this.etat=etat;
    }
}

class Robotnik extends Pracownik{

    
    double liczbaPrzeprGodz;
    double stawkaGodz;
    int LIMIT=200;

    Robotnik(String nazwisko, double etat, double liczbaPrzeprGodz, double stawkaGodz)
    {
        super(nazwisko,etat);
        this.liczbaPrzeprGodz=liczbaPrzeprGodz;
        this.stawkaGodz=stawkaGodz;
    }
}

class Urzednik extends Pracownik{

    
    double wyplataPodstawowa;
    double premia;

    Urzednik(String nazwisko, double etat, double premia, double wyplataPodstawowa)
    {
        super(nazwisko,etat);
        this.wyplataPodstawowa=wyplataPodstawowa;
        this.premia=premia;
    }
}

Zadanie wymagało, aby (chyba) w ten sposób przedstawić początek kodu (jako, że dopiero zaczynam programować to z chęcią usłyszę jakieś uwagi jeżeli w tym kodzie są błędy, których ani ja, ani kompilator nie widzi), a teraz pokażę jak wykonałem pierwszą metodę, o której mówiłem na początku oraz miejsce, w którym mam problem z drugą metodą.


Kod: Zaznacz cały

class Firma {
    
    Pracownik listaPracownikow[];
    int zatrudPracownicy=0;

    Firma(int a) {
        
    listaPracownikow = new Pracownik[a]; }

    void zatrudnijRobotnika(String nazwisko, double etat, double liczbaPrzeprGodz, double stawkaGodz) {
        
          if (zatrudPracownicy == listaPracownikow.length) {
            return;
       
 } else {
           
 Robotnik rob = new Robotnik(nazwisko, etat, liczbaPrzeprGodz, stawkaGodz);
           
 listaPracownikow[zatrudPracownicy] = rob;
            zatrudPracownicy++;}
    
public static void main(String args[]) {

Firma ob = new Firma(4);
        ob.zatrudnijRobotnika("Sienkiewicz",1,150,2);
        ob.zatrudnijRobotnika("Bulka",1,150,2); }


}


W ten sposób "wprowadzam w życie" pierwszą metodę - "void zatrudnijRobotnika()". W tym momencie zadania napotykam problem, ponieważ muszę napisać metodę, która po podaniu nazwiska pracownika usunie go z listy. Nie wiem w jaki sposób się za to zabrać, moja pierwsza myśl polegała na znalezieniu indeksu tablicy, w której się znajduje obiekt z podanym nazwiskiem i wartość tej tablicy nadpisać null'em, ale nie wiem w jaki sposób namierzyć, na jakiej pozycji w tablicy znajduje się poszukiwany obiekt. Utknąłem w tym momencie i jedyne, co udało mi się napisać to:


Kod: Zaznacz cały

void zwolnij(String nazwisko){}
Jeżeli coś jest niejasnego w tym co wyżej napisałem postaram się wytłumaczyć o co mi chodziło ;).
ODPOWIEDZ