uzupełnianie obiektu metodą

0

Witajcie czy pomógł by mi ktoś doprowadzić to do końca, klasa praca jest dosyć nie bardzo ... ?
http://pastebin.com/8EQ3SJ4y (tu treść) - pracownik
http://pastebin.com/Xc5E8xSc - firma
http://pastebin.com/SL6t2ZSx - k praca
nie wiem czy tworzyć obiekt w main i wywoływać metode która go uzupełnia czy w innej klasie tworzyć obiekt i go uzupełniać a później wywoływać w main tą metodę z innej klasy?

0

Odpowiedzialnościa klasy Firma ma być dodawanie odejmowanie itp pracowników z tablicy

<code=java> while(i!='k') { System.out.println("Podaj numer indeksu talblicy"); i=scanIn.nextInt(); System.out.println("Podaj imie "); praconik[i].setImie(scanIn.nextLine()); System.out.println("Podaj nazwisko "); praconik[i].setNazwisko(scanIn.nextLine()); System.out.println("Podaj nazwe specjalości "); praconik[i].setStanowisko(scanIn.nextLine()); System.out.println("Podaj nr indeksu "); //k } ``` Nie powinieneś ze standardowego wejścia wczytywać danych pracownika powinieneś zdefiniować pewien interfejs: ```java public interface FirmaInterface { void dodajPracownika(Pracownik pracownik); void pobierzPracownika(String imie); //... jakie tam metody jeszcze potrzebujesz } ``` Tworzysz tylko pewną implementacje twojego API i udostępniasz obie rzeczy, aby ktoś zdecydował sobie skąd chce pobierać dane. Więc pobieranie danych robisz raczej w mainie albo jeszcze w osobnej klasie która będzie się zajmowała tylko tym Twój pracownik ma być tylko pewną strukturą danych, a firma to pewna klasa zarządzająca grupą tych struktur danych
0

Poza tym rzadko preferuje się nazywanie interfejsów w ten sposób jak ja zrobiłem powinno się go nazwać Firma a klase która masz jako Firma np FirmaImpl. Następnym razem skup się na tworzeniu interfejsów dla klas

0

A no oczywiście pomyłka nie void pobierzPracownika(String imie) tylko Pracownik pobierzPracownika(String imie)

0
Miły Adolf napisał(a):

Poza tym rzadko preferuje się nazywanie interfejsów w ten sposób jak ja zrobiłem powinno się go nazwać Firma a klase która masz jako Firma np FirmaImpl. Następnym razem skup się na tworzeniu interfejsów dla klas

Na razie jeszcze nie ogarniam za dobrze interfejsów i treść zadania też ich nie przewiduje, a tak wgl to czy ja dobrze robie to zadanie?

1

Tak jak powiedziałem, robisz je źle:

//Zastanów się, jak przy tym ostatnim zadaniu rozdzielić odpowiedzialności pomiędzy obie klasy.

Tak masz w zadaniu. Odpowiedzialnością klasy Firma (klasy nazywaj z dużej litery!!!) jest dodawanie i wyświetlanie pracowników, ty dodatkowo dajesz jej funkcje "zdobywania danych" bo wywołujesz scanIn.nextLine(), po drugie jest to złamanie zasady mówiącej, że metoda ma robić tylko to co mówi o niej sygnatura metody. Twoja klasa powinna wyglądać mniej więcej tak:


public class Firma {

    private Pracownik[] pracownicy = new Pracownik()[100];
    private int indeksTablicy = 0;

    public void dodajPracownika(Pracownik pracownik) {
       pracownicy[indeksTablicy++] = pracownik;
    }

    public Pracownicy[] pobierzPracownikow() {
        return pracownicy;
    }

Pisałem ten kod tutaj mogą być błędy. Nie wiem czemu zadanie narzuca wyświetlanie pracowników w metodzie, ale ta odpowiedzialność powinna spaść na inną klasę.

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