Elso verzio
This commit is contained in:
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allat.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allat.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allatkert.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Allatkert.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Emlo.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Emlo.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Hullo.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Hullo.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Lakresz.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Lakresz.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Madar.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Madar.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Main.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Main.class
Normal file
Binary file not shown.
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Rovar.class
Normal file
BIN
Gosztolya_Mate-FZRNZW-Allatkert/bin/Rovar.class
Normal file
Binary file not shown.
0
Gosztolya_Mate-FZRNZW-Allatkert/idosebb_allatok.txt
Normal file
0
Gosztolya_Mate-FZRNZW-Allatkert/idosebb_allatok.txt
Normal file
@ -1,5 +0,0 @@
|
|||||||
public class App {
|
|
||||||
public static void main(String[] args) throws Exception {
|
|
||||||
System.out.println("Hello, World!");
|
|
||||||
}
|
|
||||||
}
|
|
248
Gosztolya_Mate-FZRNZW-Allatkert/src/Main.java
Normal file
248
Gosztolya_Mate-FZRNZW-Allatkert/src/Main.java
Normal file
@ -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<Allat> 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");
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user