Kezdőoldal » Számítástechnika » Programozás » Java-ban több leszármazott...

Java-ban több leszármazott osztály “együttes” működése?

Figyelt kérdés

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.


dec. 28. 22:24
 1/8 anonim ***** válasza:
44%
Miért nem használod az MI-t?
dec. 29. 07:19
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
83%
Annyira túl van bonyolítva a feladat, hogy nem értem, mit kellene csinálni. Csak annyit értek belőle, hogy ez egy tipikus programozói hiba: ráerőltetünk egy tervezési mintát egy olyan feladatra, amire az egyáltalán nem alkalmas. Azok szokták elkövetni, akik a tervezési mintákat bemagolták, de nem rendelkeznek programozói gondolkodással.
dec. 29. 08:29
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
76%

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.

dec. 29. 11:43
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
64%

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();

}

}

}

dec. 29. 15:14
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:
76%
De basszus, ha kódot raktok be, használjátok már a pastebint...
dec. 29. 16:18
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:
56%

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.

dec. 29. 17:06
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:
49%

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....

dec. 29. 17:50
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:
38%

É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.

dec. 29. 19:45
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!