- Google Pixel Watch 4 – Hé, Google, mennyi az idő?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- OnePlus 15 - van plusz energia
- Android alkalmazások - szoftver kibeszélő topik
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Mobil flották
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Xiaomi 17 Ultra - jó az optikája
- One mobilszolgáltatások
- Samsung Galaxy S25 - végre van kicsi!
Új hozzászólás Aktív témák
-
floatr
veterán
válasz
alratar
#4885
üzenetére
Ha a cél a Vector használata, akkor nem életszerű.
Az ilyen nyilvántartásokat Map vagy Set használatával sokkal egyszerűbb, és gyorsabb is kezelni. Ha rendezési elv is van mögötte, akkor vannak rendezhető Map-ek is. Nem véletlen, hogy általában adatbázist is raknak mögé. -
floatr
veterán
válasz
alratar
#4878
üzenetére
Akkor hadd szóljak ki egy kicsit az enterspájzból én is. Ha egy metódusnak a neve "set...", de nem értéket állít be, hanem összead, akkor -- még ha azt is csinálná, amit kellene -- egy kód review-nál fognak hátba vágni. Másrészt meg sokak számára fájó pont, de célszerű legalább az elnevezések esetében angolt használni. Ha egy végzős egyemistát bedobnak a mély vízbe, nagy eséllyel kerülhet olyan projektbe, ami külföldi kooperációban készül.
De ha a konkrét példánál maradunk, akkor sokkal hatékonyabb lenne egy Map-be tárolni, és kulcs (név) alapján keresni, vagy Set-be pakolni, és hashCode/equals metódusokat használni. Ha ez valami oktatáshoz kötődik, akkor nem értem, hogy miért nem lehet életszerűbb példákon keresztül oktatni.
-
-
WonderCSabo
félisten
válasz
alratar
#4867
üzenetére
De ennek semmi értelme! A függvény lefutása után a lokális változó felszabadul, és a növelt érték megy a kukába... Gondolom itt azt akartad elérni, hogy az osztály által reprezentált áru mennyisége változzon meg, nem?... Mert arra a jelenlegi függvényed nincs hatással.
-
WonderCSabo
félisten
válasz
alratar
#4865
üzenetére
Az, hogy amikor ezt írod, hogy
public void setMenny(double menny) {
menny += menny;
}Akkor a paraméterben kapott menny változó értékét növeled meg, és nem a példányváltozóét. A lokális változó mindig elfedi a tagváltozót. Úgy tudsz ilyen esetben a tagváltozóra hivatkozni, hogy:
public void setMenny(double menny) {
this.menny += menny;
}A másik opció, hogy átnevezed a paramétert. Tényleg el kéne olvasnod valami alap Java könyvet, vagy vmi tutorialt végigcsinálni. De egyébként ez a jelenség más nyelveken is így vna.
-
Karma
félisten
válasz
alratar
#4855
üzenetére
A menny += menny csak nekem tűnt fel?
Mindenesetre eddig ez elég FUBAR, szerintem lassítanod kéne egy kicsit és két dolgot mindenképp megejteni: kicsit végiggondolni hogy ki kivel van, és némi konvenciót is kéne találnod a tagváltozókban (vagy kiírni a this-t, mert így a settereid nem sokat csinálnak.
WonderCsabo: a += -re gondoltam explicite

-
Jim-Y
veterán
válasz
alratar
#4855
üzenetére
Én ezt így csinálnám.
Nyílván csinálhatnál ekkor a gyümölcsöknek is egy külön osztályt. De akár az is játszik, hogy nem csinálsz egy külön interface-t, hanem pl a Zöldséget a Termék osztályból származtatod, mint ahogy a Gyümölcsöt is.
Ez sem egy világbajnok kód, de szerintem annál amit csináltál jobb
-
WonderCSabo
félisten
válasz
alratar
#4855
üzenetére
Itt eléggé nagy kavar van.
A Vector<String> aru példányváltozót elfedi a lokális Termek aru - ez bár legális, nem éppen okos döntés. Valamelyiket mindenképpen nevezd át, az elsőnek van rossz neve mellesleg.
A zoldsegek Vector hol van definiálva?
Termek aru = new Temek(nev, 0.0);
if (zoldsegek.contains(aru)) {Ez itt mindig false-ot fog visszaadni, mivel a contains az equals metódust hívja meg, ami pedig alapesetben a referenciákat hasonlítja össze, azok pedig sosem fognak egyezni, hiszen mindig új objektumot hozol létre. Definiáld felül az equals és hashCode metódust a Termek osztályban, hogy ez értelmesen működjön.
A Vector<String> aru típusparamétere miért nem Termek?
Console.readLine
Csak kíváncsiságból kérdezem: ezt az osztályt milyen framework szolgáltatja?

-
WonderCSabo
félisten
válasz
alratar
#4850
üzenetére
Nem biztos, hogy jó lesz, nem teljesen értem, hogy mit akarsz. Egyébként Object-et típusparaméternek nem sok értelme van megadni, legalábbis ebben az esetben semmi.
Ha Object-et adsz meg típusparaméternek, akkor bármilyen objektumot berakhatsz a konténerbe. Pl.
Vector<Object> vector = new Vector();
vector.add(new String());
Integer integer = (Integer) vector.get(0);Az utolsó sor fordítási időben teljesen legális kód, de ClassCastException-nel jár, hiszen a String nem Integer. A vicc az, hogy a generic-et pont arra találták ki, hogy ezt a problémát kiküszöbölje, Te pedig arra akarod használni, hogy mégis probléma lehessen belőle...
-
WonderCSabo
félisten
válasz
alratar
#4843
üzenetére
Csak az, hogy mégsem String típusú objektumot adtál át az add metódusnak, hanem elnéztél valamit. Fontos, hogy a statikus típusnak is String-nek kell lennie, mivel fordítási időben történik a típusellenőrzés, szóval egy Object statikus típusú objektumot nem tudsz átadni, hiába dinamikus típusa String.
Egyébként látom nem csak sikerült megfogadni a tanácsot, és ArrayList-et használni.
-
-
trisztan94
őstag
válasz
alratar
#4207
üzenetére
A <= es a >= logikai operatorok, jelentesuk: kisebb egyenlo, nagyobb egyenlo.
a => hozzafuzesre valo, amit irtal:
x => 10 azt jelenti, hogy x legyen egyenlo 10-el. Altalaban asszociativ tombnel hasznaljak leginkabb php-ban, pl: elem => 15 es akkor ugy hivatkozol ra, hogy array[elem] -> ennel az erteke 15
szerk: javitom magam: csak php-ban van ertelme (+ olyan nyelvekben ahhol vannak asszociativ tombok)
-
Karma
félisten
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Házimozi belépő szinten
- Vezetékes FEJhallgatók
- A fényes siker is lehet szög a koporsóban: gondban a MacBook Neo gyártása
- Xbox Series X|S
- Peugeot, Citroën topik
- Házimozi haladó szinten
- Azonnali fáradt gőzös kérdések órája
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- P16s Gen1 16" FHD+ IPS i7-1260P NVIDIA T550 16GB 512GB NVMe magyarított (lézerezett) bill ujjolv gar
- ÚJ Bontatlan Apple Macbook AIR M2 , M3 , M4 Legújabb magyar billentyűzet 1 év Garancia Deák Térnél.
- AKCIÓ ÚJ Bontatlan Macbook Pro 16 M4 Pro 14CPU/20GPU 24GB/512GB SSD Magyar billent Azonnal átvehető.
- Új Bontatlan Mac Studio M4 Max 2025 14cCPU /32cGPU / 36GB RAM / 512GB SSD - Azonnal Átvehető Deák.
- SZUPER Akcióban Új Bontatlan Dyson V15 Origin 3 év gyártói garanciával Azonnal Átvehető
- ÁRGARANCIA!Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 14 Pro 128GB Space Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4322
- iKing.hu Nothing Phone 2 Pro 8/128GB White használt karcmentes 6 hónap garancia
- TP-Link TX401 PCIe Hálózati Kártya - 10Gigabit!
- Lenovo T14 Gen3 I5 1245U Refurbished - Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest







