diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Allat.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Allat.class new file mode 100644 index 0000000..8964e65 Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Allat.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Allatkert.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Allatkert.class new file mode 100644 index 0000000..7bfc28b Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Allatkert.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Emlo.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Emlo.class new file mode 100644 index 0000000..dfb9ff5 Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Emlo.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Hullo.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Hullo.class new file mode 100644 index 0000000..21cb34f Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Hullo.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Lakresz.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Lakresz.class new file mode 100644 index 0000000..d33175b Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Lakresz.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Madar.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Madar.class new file mode 100644 index 0000000..6b508d6 Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Madar.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Main.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Main.class new file mode 100644 index 0000000..9b23e4f Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Main.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/bin/Rovar.class b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Rovar.class new file mode 100644 index 0000000..3493e41 Binary files /dev/null and b/Gosztolya_Mate-FZRNZW-Allatkert/bin/Rovar.class differ diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/idosebb_allatok.txt b/Gosztolya_Mate-FZRNZW-Allatkert/idosebb_allatok.txt new file mode 100644 index 0000000..e69de29 diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/src/App.java b/Gosztolya_Mate-FZRNZW-Allatkert/src/App.java deleted file mode 100644 index 0a839f9..0000000 --- a/Gosztolya_Mate-FZRNZW-Allatkert/src/App.java +++ /dev/null @@ -1,5 +0,0 @@ -public class App { - public static void main(String[] args) throws Exception { - System.out.println("Hello, World!"); - } -} diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/src/Main.java b/Gosztolya_Mate-FZRNZW-Allatkert/src/Main.java new file mode 100644 index 0000000..62ca602 --- /dev/null +++ b/Gosztolya_Mate-FZRNZW-Allatkert/src/Main.java @@ -0,0 +1,248 @@ +import java.io.FileWriter; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.stream.Collectors; + +enum Lakresz { + FUVES_RESZ, HOMOK, MEDENCE, MADARHAZ, HULLOHAZ +} + +abstract class Allat { + private String megnevezes; + private int eletkor; + private double suly; + private Lakresz lakresz; + + public Allat(String megnevezes, int eletkor, double suly, Lakresz lakresz) { + this.megnevezes = megnevezes; + this.eletkor = eletkor; + this.suly = suly; + this.lakresz = lakresz; + } + + public String getMegnevezes() { + return megnevezes; + } + + public void setMegnevezes(String megnevezes) { + this.megnevezes = megnevezes; + } + + public int getEletkor() { + return eletkor; + } + + public void setEletkor(int eletkor) { + this.eletkor = eletkor; + } + + public double getSuly() { + return suly; + } + + public void setSuly(double suly) { + this.suly = suly; + } + + public Lakresz getLakresz() { + return lakresz; + } + + public void setLakresz(Lakresz lakresz) { + this.lakresz = lakresz; + } + + @Override + public String toString() { + return "Megnevezés: " + megnevezes + ", Életkor: " + eletkor + " év, Súly: " + suly + " kg, Lakrész: " + lakresz; + } +} + +class Emlo extends Allat { + private String eletter; + + public Emlo(String megnevezes, int eletkor, double suly, Lakresz lakresz, String eletter) { + super(megnevezes, eletkor, suly, lakresz); + this.eletter = eletter; + } + + public String getEletter() { + return eletter; + } + + public void setEletter(String eletter) { + this.eletter = eletter; + } + + @Override + public String toString() { + return super.toString() + ", Élettér: " + eletter; + } +} + +class Madar extends Allat { + private int szarnyfesztav; + + public Madar(String megnevezes, int eletkor, double suly, Lakresz lakresz, int szarnyfesztav) { + super(megnevezes, eletkor, suly, lakresz); + this.szarnyfesztav = szarnyfesztav; + } + + public int getSzarnyfesztav() { + return szarnyfesztav; + } + + public void setSzarnyfesztav(int szarnyfesztav) { + this.szarnyfesztav = szarnyfesztav; + } + + @Override + public String toString() { + return super.toString() + ", Szárnyfesztáv: " + szarnyfesztav + " cm"; + } +} + +class Hullo extends Allat { + private boolean pikkelyes; + + public Hullo(String megnevezes, int eletkor, double suly, Lakresz lakresz, boolean pikkelyes) { + super(megnevezes, eletkor, suly, lakresz); + this.pikkelyes = pikkelyes; + } + + public boolean isPikkelyes() { + return pikkelyes; + } + + public void setPikkelyes(boolean pikkelyes) { + this.pikkelyes = pikkelyes; + } + + @Override + public String toString() { + return super.toString() + ", Pikkelyes: " + (pikkelyes ? "igen" : "nem"); + } +} + +class Rovar extends Allat { + private int labakSzama; + + public Rovar(String megnevezes, int eletkor, double suly, Lakresz lakresz, int labakSzama) { + super(megnevezes, eletkor, Math.min(suly, 0.5), lakresz); + this.labakSzama = labakSzama; + if (suly > 0.5) { + System.out.println("Figyelmeztetés: A rovar súlya túl nagy, alapértelmezett értéket állítottam be: 0.01 kg."); + setSuly(0.01); + } + } + + public int getLabakSzama() { + return labakSzama; + } + + public void setLabakSzama(int labakSzama) { + this.labakSzama = labakSzama; + } + + @Override + public String toString() { + return super.toString() + ", Lábak száma: " + labakSzama; + } +} + +class Allatkert { + private String nev; + private String cim; + private String telefonszam; + private String email; + private List allatok; + + public Allatkert(String nev, String cim, String telefonszam, String email) { + this.nev = nev; + this.cim = cim; + this.telefonszam = telefonszam; + this.email = email; + this.allatok = new ArrayList<>(); + } + + public void hozzaadAllat(Allat allat) { + allatok.add(allat); + System.out.println("Új állat hozzáadva: " + allat.getMegnevezes()); + } + + public void torolAllat(String megnevezes) { + allatok.removeIf(allat -> allat.getMegnevezes().equals(megnevezes)); + System.out.println("Állat törölve: " + megnevezes); + } + + public String keres(String allatNeve) { + for (Allat allat : allatok) { + if (allat.getMegnevezes().equalsIgnoreCase(allatNeve)) { + return allat.toString(); + } + } + return "Nincs ilyen nevű állat."; + } + + public void listazAllatokat() { + for (int i = 0; i < allatok.size(); i++) { + System.out.println((i + 1) + ". " + allatok.get(i)); + } + } + + public int getAdottTipusuAllatokSzama(Class tipus) { + return (int) allatok.stream().filter(tipus::isInstance).count(); + } + + public void listazTipusokSzerint() { + allatok.stream() + .sorted(Comparator.comparingDouble(Allat::getSuly).reversed()) + .collect(Collectors.groupingBy(Allat::getClass)) + .forEach((tipus, lista) -> { + System.out.println("Típus: " + tipus.getSimpleName()); + lista.forEach(System.out::println); + }); + } + + public void irjFajlba(String fileNev) { + try (FileWriter writer = new FileWriter(fileNev)) { + for (Allat allat : allatok) { + if (allat.getMegnevezes().contains("a") && allat.getEletkor() >= 4) { + writer.write(allat + "\n"); + } + } + System.out.println("Fájlba írás kész: " + fileNev); + } catch (IOException e) { + System.err.println("Hiba a fájl írása közben: " + e.getMessage()); + } + } +} + +public class Main { + public static void main(String[] args) { + Allatkert allatkert = new Allatkert("Fővárosi Állatkert", "Budapest, Állatkerti krt. 6-12.", "123-4567", "info@allatkert.hu"); + + // Példányosítás + allatkert.hozzaadAllat(new Emlo("Oroszlán", 5, 190.5, Lakresz.FUVES_RESZ, "Szavanna")); + allatkert.hozzaadAllat(new Madar("Sas", 3, 4.0, Lakresz.MADARHAZ, 220)); + allatkert.hozzaadAllat(new Hullo("Krokodil", 12, 400.0, Lakresz.MEDENCE, true)); + allatkert.hozzaadAllat(new Rovar("Bogár", 1, 0.6, Lakresz.FUVES_RESZ, 6)); + + // Keresés + System.out.println(allatkert.keres("Oroszlán")); + + // Listázás + allatkert.listazAllatokat(); + + // Típusok szerinti számolás + System.out.println("Emlősök száma: " + allatkert.getAdottTipusuAllatokSzama(Emlo.class)); + + // Súly szerinti listázás + allatkert.listazTipusokSzerint(); + + // Fájlba írás + allatkert.irjFajlba("idosebb_allatok.txt"); + } +} diff --git a/Gosztolya_Mate-FZRNZW-Allatkert/java_v2024_12_A.pdf b/java_v2024_12_A.pdf similarity index 100% rename from Gosztolya_Mate-FZRNZW-Allatkert/java_v2024_12_A.pdf rename to java_v2024_12_A.pdf