Prośba o wytłumaczenie kodu

Prośba o wytłumaczenie kodu
PI
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:15
0

Witam jak w temacie... Jestem dość świeży w języku JAVA, na podstawie poradników i fragmencie kodu podanego przez prowadzącego uzyskałem takie coś... tyle, że teraz nie bardzo wiem co która część robi. Byłbym wdzięczny za pomoec :)

Kopiuj
public class EmptyNS extends RuntimeException {
    public EmptyNS() {
    }

}


-----------------------------------------------------------------------------------------------------------------


import java.util.LinkedList;
import java.util.List;


public class Firma {
    private List<Pracownik> pracowniks = new LinkedList<>();

    public void nowyPracownik(Pracownik pracownik){
        pracowniks.add(pracownik);
    }

    public void usun(String tekst){
        for (int i=0;i<pracowniks.size();i++){
            if(pracowniks.get(i).getImie().contains(tekst)||pracowniks.get(i).getNazwisko().contains(tekst)){
                pracowniks.remove(i);
                i--;
            }
        }
    }

    public List<Pracownik> getPracowniks() {
        return pracowniks;
    }
}


-----------------------------------------------------------------------------------------------------------------


import java.awt.*;

public class Main {

    public static void main(String[] args) {
        Firma firma = new Firma();
        Pracownik pracownik1 = new Pracownik("Adam"," Matys",1987);
        Pracownik pracownik2 = new Pracownik("Marek"," Des",1966);
        Pracownik pracownik3 = new Pracownik("Jan"," Wold",1990);
        Pracownik pracownik4 = new Pracownik("Anna"," Nowak",1980);

        firma.nowyPracownik(pracownik1);
        firma.nowyPracownik(pracownik2);
        firma.nowyPracownik(pracownik3);
        firma.nowyPracownik(pracownik4);

        for(int i=0;i<firma.getPracowniks().size();i++){
            System.out.println(firma.getPracowniks().get(i));
        }

        firma.usun("Jan");
        System.out.print("PO USUNIECIU\n");
        for(int i=0;i<firma.getPracowniks().size();i++){
            System.out.println(firma.getPracowniks().get(i));
        }
    }
}


--------------------------------------------------------------------------------------------------------




public class Pracownik {

    private String imie;
    private String nazwisko;
    private int rok;


    public Pracownik(String imie, String nazwisko, int rok) {

        this.imie = imie;
        this.nazwisko = nazwisko;
        this.rok = rok;
        if (nazwisko == null || nazwisko == "" || imie == null || imie == "") {
            throw new EmptyNS();
        }

    }

    public String getImie() {
        return imie;
    }

    public String getNazwisko() {
        return nazwisko;
    }

    public int getRok() {
        return rok;
    }

    public String toString() {
        return
                "imie: '" + imie + '\'' +
                ", nazwisko: '" + nazwisko + '\'' +
                ", rok: " + rok ;
    }



}
edytowany 1x, ostatnio: Patryk27
Patryk27
Poprawiłem kolorowanie kodu na Javę ;-)
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

Czego konkretnie nie rozumiesz? :P


PI
  • Rejestracja:ponad 8 lat
  • Ostatnio:prawie 8 lat
  • Postów:15
0

Zacznijmy od początku xD

Kopiuj
public class EmptyNS extends RuntimeException {
    public EmptyNS() {
    }
 
}

Jaca777
  • Rejestracja:ponad 9 lat
  • Ostatnio:11 miesięcy
0

Kopiując fragmenty kodu, których nie rozumiesz, nie napiszesz niczego sensownego, a tym bardziej niczego się nie nauczysz. Można napisać, że podany przez Ciebie fragment kodu to klasa wyjątku, który jest rzucany, gdy dane Pracownika są "puste". Nazwa pewnie od "EmptyNameSurname". Ale jest spora szansa, że nie wiesz czym jest wyjątek, czyli wciąż nie wiadomo do końca co Ci wytłumaczyć. Po prostu przeczytaj porządnie jakiś kurs Javy i wszystko się wyjaśni :) Na przykład ten: https://javastart.pl/static/mapa-strony/

edytowany 1x, ostatnio: Jaca777
PI
Aż tak źle nie jest. Kumam co to klasa wyjątek, kumam część teoretyczną, problem w tym, że część z kodem już mniej ;D
Jaca777
No dobra, tym lepiej. W takiej sytuacji wystarczy że ogarniesz składnię. Znów odsyłam do kursu.
Patryk27
Moderator
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Wrocław
  • Postów:13042
0

java dziedziczenie oraz java konstruktor w Google.


P7
  • Rejestracja:ponad 9 lat
  • Ostatnio:4 dni
  • Lokalizacja:Warszawa
  • Postów:89
0

W skrócie chodzi o to, że masz 2 klasy Pracownik i Firma. Jedynym polem klasy Firma jest lista przechowująca obiekty klasy Pracownik.
Firma ma metody odpowiedzialne za dodawanie oraz usuwanie pracowników. Pracownicy usuwani są gdy imię lub nazwisko zawiera fragment tekstu dostrarczonego jako parametr metody - tu lepiej byłoby użyć equals().
Konstruktor Pracownika rzuca niekontrolowany wyjątek w momencie gdy któryś parametr jest nullem lub imię lub nazwisko są pustym stringiem (rok już nie jest sprawdzany).

Co można by porawić - na szybko

  1. nie mieszać nazw polskich z angielskimi - pracowniks, proszę !,
  2. wywalić i--; z metody usun,
  3. wywalić ten wyjątek bo on niczego nie wnosi poza nadmiarowym kodem - korzystać z wyjątków z API Javy - bardziej specjalizowanych, tu można by użyć np. java.lang.IllegalArgumentException
  4. użyć Java 8 - stream().filter()....

i pewnie jeszcze trochę...

edytowany 1x, ostatnio: Pablitto77
BE
  • Rejestracja:ponad 8 lat
  • Ostatnio:ponad 4 lata
  • Lokalizacja:Lublin
0

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.