Java-ban több leszármazott osztály “együttes” működése?
A feladat a következő:
Egy tömb elemeit vizsgáljuk meg, hogy nagyobbak e mint 10 és kisebbek e mint 50. Tehát 10<x<50.
Van visitor osztály, aminek van egy private int tömbje.
És van egy metodusa ami végigmegy ezen a tombon, és megvizsgálja a fenti feltételt.
public class Visitor{
private int[] tomb;
public void vizsgal(Feltetel f){
for(int i=0, i<this.tomb.length, i++){
if(f.feltetel(this.tomb[i])){
system.out.println(this.tomb[i]);
}}};
public abstract Feltetel{
public abstract boolean feltetel(int elem);
}
Public class Nagyobbfeltetel extends Feltetel{
private int hatar;
@Override
public boolean feltetel(int elem){
return elem>hatar;
Public class KisebbFeltetel extends Feltetel{
private int hatar;
@Override
public boolean feltetel(int elem){
return elem<hatar;
Public class Tobbfeltetel{
public static Feltetel nagyobbeskisebb();
A lényeg az lenne hogy kell egy olyan osztály ami visszaad egy olyan Feltetel osztályt ami vizsgálja mindkét feltételt, úgy hogy felhasználja mindkét leszármazott osztályt.
int[] tomb={12, 23, 25, 7, 5};
Visitor v = new Visitor(tomb);
Feltetel f=Tobbfeltetel.nagyobbeskisebb();
v.vizsgal(f);
Tehát a Tobbfeltetel osztály metodusa egy olyan Feltetel osztállyal kell hogy visszatérjen ami felhasználja a NagyobbFeltetel és KisebbFeltetel osztaly metodusait.
Nem jövök rá.
Elnézést ha valamit rosszul írtam le.
Pedig egyszerű
Az osztályodban van egy alaposztály példányod. Az alaposztálynak 1 methódusa van, a leszármazott osztályok ezt implementálják. A példány helyére pedig azt a leszármazott osztályt teszed, amelyiket akarod.
Feltéve ha jól értettem, hogy mit szeretnél csinálni.
Személyes véleményem szerint az ilyen tipusú feladatok nem alkalmasak szakmai fejlődésre. Egyetértek a második válaszoló kritikus hozzáállásával.
Az általad bemásolt kódot picit átírtam, hogy a maga silányságában leforduljon és az új blokkot implementáltam. Remélem segít, de mindenképpen leszögezem, hogy ez gányolás, nagyon nem tartom helyesnek.
public class Main {
public static void main(String[] args) {
int[] tomb = {12, 23, 25, 7, 5};
Visitor v = new Visitor(tomb);
Feltetel f = Tobbfeltetel.nagyobbeskisebb();
v.vizsgal(f);
}
public static class Visitor {
private int[] tomb;
public Visitor(int[] tomb) {
this.tomb = tomb;
}
public void vizsgal(Feltetel f) {
for (int i = 0; i < this.tomb.length; i++) {
if (f.feltetel(this.tomb[i])) {
System.out.println(this.tomb[i]);
}
}
}
}
public static abstract class Feltetel {
public abstract boolean feltetel(int elem);
}
public static class Nagyobbfeltetel extends Feltetel {
private int hatar = 10;
@Override
public boolean feltetel(int elem) {
return elem > hatar;
}
}
public static class KisebbFeltetel extends Feltetel {
private int hatar = 50;
@Override
public boolean feltetel(int elem) {
return elem < hatar;
}
}
public static class NagyobbEsKisebbFeltetel extends Feltetel {
private Feltetel nagyobb = new Nagyobbfeltetel();
private Feltetel kisebb = new KisebbFeltetel();
@Override
public boolean feltetel(int elem) {
return kisebb.feltetel(elem) && nagyobb.feltetel(elem);
}
}
public class Tobbfeltetel {
public static Feltetel nagyobbeskisebb() {
return new NagyobbEsKisebbFeltetel();
}
}
}
Te vagy az első,aki válasz helyett megmondta, hogy mesterséges intelligenciát kellett volna használni, most meg hogy pastebint?
Ehhez a rettentően egyszerű és formázatlanul is jól olvasható kódhoz minek harmadik fél eszközének a használata?
Szerintem sokat ront a saját magunk alakította kultúránkon, hogy segítség adása helyett kekeckedünk. Meg hogy mindent ezerrel lepontozunk, csak mert valami apróság miatt nem tetszik a válasz.
Az eredmény az, hogy a kioktatástól tartva kevesebben merik egyáltalán feltenni a kérdésüket. És a lepontozástól vagy kioktatástól tartók nem vesződnek a szabadidejükben azzal, hogy másoknak segítsenek.
Ha a formázás a bajod, tedd be pastebinbe és dobd ide a linket.
Igen, én voltam első válaszoló is.
Nem kekeckedtem, hanem segítettem. Az MI két perc alatt ad megoldást egy ilyen problémára, a pastebin pedig azért jó, mert sokkal átláthatóbb lesz tőle a kód.
De ha valaki nem akar hatékonyan dolgozni, az is az ő gondja, engem nem érdekel....
Én sem akarok kekeckedni. A munkámban én is használok MI-t, de tapasztalatból tudom, hogy a junior beosztottaknak még nincs elég ügyessége, hogy kihozzák belőle a helyes válaszokat.
Valaha te és én is olyan tapasztalatlanok voltunk, hogy mi is kértünk segítséget mindenkitől, akitől csak lehetett, még ha utólag tudjuk is, hogy "buta" kérdések voltak.
Feltételezem, hogy a kérdező a kérdését beírta a chatgpt-be, de nem feltétlen kapott megfelelő választ vagy nem tartotta helyesnek. Ezért írta ki a kérdését. Ez a honlap segít neki.
A pastebin meg nem ipari sztandard, hanem a te preferenciád. Én csak akkor használom, ha a kód nem jól olvasható egyébként.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!