Nekem az a konyv nagyon bejott, szamomra erthetoen fogalmazott.
@WonderCsabo: Az jo regeny!
@raggg: legalabb gyakorlom az angolt
Gyorskeresés
Legfrissebb anyagok
- Retro Retro Kocka Kuckó 2024
- Bemutató Spyra: nagynyomású, akkus, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
Általános témák
LOGOUT.hu témák
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [Sub-ZeRo:] Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- [Re:] [sziku69:] Szólánc.
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [Wiz Khalifa:] Grand Theft Auto V - Látványosságok és érdekességek tárháza egy helyen!
- [Re:] [bb0t:] Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] [mefistofeles:] Miért így bizniszelsz?
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Hozzászólások
caindwan
tag
Java GUI-t nem csinalunk
while (!sleep) sheep++;
zserrbo
aktív tag
A Java Tantuszt tudom ajánlani nem is olyan drága 3 ezer most akcióban és ingyen szállítás a kiadó oldalán szept 21.ig most. Kellemes a hangvétele, helyenként kicsit szájbarágós, de én nem bánom.
Most kinéztem jobb magyar könyv híján a Szoftverfejlesztés Java SE platformon könyvet, csak az oldalszámhoz képest sztem kicsit drága, de ez még nem is lenne gond, hanem úgy érzem túl sok mindent akartak belerakni és 1-1 témáról csak pár oldal van (a tartalomjegyzéke fent van a szak kiadó honlapján).
Tudom olvassak angolul, de könyv terjedelmű szakkönyveket angolul még nem mertem, de most megint megfordult a fejemben.
Az agyhullám java-nál nem éreztétek, hogy elavult nagyon? Én eléggé furcsának tartom, hogy egy 2007-es könyvet 2011-ben adtak ki magyarul. (Az egyetemi könyvtárba meg 2013-14-ben jött 1-1 példány belőle...)
[ Szerkesztve ]
RaPiDsHaRe
aktív tag
Hello!
Egy újabb kérdés. Van ez a három fájl, ezeket, hogyan tudnám parancssorból futattni?
public class GuessGame {
Player p1;
Player p2;
Player p3;
public void startGame() {
p1 = new Player();
p2 = new Player();
p3 = new Player();
int guessp1 = 0;
int guessp2 = 0;
int guessp3 = 0;
boolean p1isRight = false;
boolean p2isRight = false;
boolean p3isRight = false;
int targetNumber = (int) (Math.random() * 10);
System.out.println("I'm thinking of a number between 0 and 9...");
while(true) {
System.out.println("Number to guess is " + targetNumber);
p1.guess();
p2.guess();
p3.guess();
guessp1 = p1.number;
System.out.println("Player one guessed " + guessp1);
guessp2 = p2.number;
System.out.println("Player two guessed " + guessp2);
guessp3 = p3.number;
System.out.println("Player three guessed " + guessp3);
if (guessp1 == targetNumber) {
p1isRight = true;
}
if (guessp2 == targetNumber) {
p2isRight = true;
}
if (guessp3 == targetNumber) {
p3isRight = true;
}
if (p1isRight || p2isRight || p3isRight)
{
System.out.println("We have a winner!");
System.out.println("Player one got it right? " + p1isRight);
System.out.println("Player two got it right? " + p2isRight);
System.out.println("Player three got it right? " + p3isRight);
System.out.println("Game is over");
break;
}
else
{
System.out.println("Players will have to try again.");
}
}
}
}
-----
public class Player {
int number = 0;
public void guess()
{
number = (int) (Math.random() * 10);
System.out.println("I'm guessing " + number);
}
}
-----
public class GameLauncher {
public static void main (String[] args) {
GuessGame game = new GuessGame();
game.startGame();
}
}
Szmeby
tag
A while cikluson kívül is van élet, ne félj oda is tenni valamit. Persze csak ha szükséges.
A két azonos szövegből pedig elég csak az egyiket megtartani.
--- edit:
A GameLauncher futtatható, mert van neki main metódusa.
Bármely osztály, ami rendelkezik main metódussal, futtatható:
public static void main(String[] args) {
// ...
}
[ Szerkesztve ]
bucsupeti
senior tag
biztos van rá valamilyen parancssori megoldás is, de én inkább valamelyik IDE-vel csinálnám.
Létre kell hozni egy standard java projektet. abban létre kell hozni három class-t amikbe természetesen a három forrásfájl van.
Ezután már futtatható IDE-ből, exportálható JAR fájlba, majd futtatható a jar a JVM segítségével...
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
RaPiDsHaRe
aktív tag
Ez a futtatás nem akar nekem összejönni
ezt írja ki:
"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
at GameLauncher.main(GameLaucher.java:2)
"
Ezután már futtatható IDE-ből, exportálható JAR fájlba, majd futtatható a jar a JVM segítségével... -ezt, hogyan tudom megcsinálni ?
bucsupeti
senior tag
Vettem a fáradtságot és bemásoltam Eclipse-be a forrásokat. Így néz ki a projekt:
Az Eclipse-ből indítható, működik (hogy jól-e azt nem néztem, de lefut és normálisan befejeződik).
Ezután a projektre ha jobb egérgombot nyomsz, majd kiválasztod az Export... menüt ott ki tudod exportálni futtatható JAR fájlként (Runable JAR).
Exportálás után parancssorba így lehet futtatni a progit: java -jar jarfájlneve.jar
Egyébként nagyon csúnya dolog javában a publikus adattag. Ilyen pl a Player osztályban a number. Ugyan működik a program de az egyik objektum-orientált elvet sérti meg a program, mégpedig az egységbezárást (Encaptulation). Illik private-ként deklarálni az adattagokat, és getter/setter metódusokkal intézni az adattagok írását, olvasását.
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
(#5810) WonderCSabo válasza RaPiDsHaRe (#5808) üzenetére
WonderCSabo
félisten
"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Azért egy picit próbáld meg értelmezni a hibaüzeneteket... Fordítási hiba van a kódban, azért nem tudod futtatni.
Ezután már futtatható IDE-ből, exportálható JAR fájlba, majd futtatható a jar a JVM segítségével... -ezt, hogyan tudom megcsinálni ?
Ha csak nem akarod másnak is átadni a programot, vagy valamiért tesztelni hogy viselkedik ilyen esetben, teljesen felesleges ezzel nyűglődni, az IDE-ből való futtatás sokkal kényelmesebb, és nagyon sok előnnyel jár.
D4nte
csendes tag
"at GameLauncher.main(GameLaucher.java:2)"
Fájlneveket ellenőrizd. Az a GameLaucher kicsit hiányos.
Lortech
addikt
Egyébként nagyon csúnya dolog javában a publikus adattag. Ilyen pl a Player osztályban a number. Ugyan működik a program de az egyik objektum-orientált elvet sérti meg a program, mégpedig az egységbezárást (Encaptulation). Illik private-ként deklarálni az adattagokat, és getter/setter metódusokkal intézni az adattagok írását, olvasását.
Hát azért ez egy picit nem ilyen egyszerű. Azzal, hogy private-té teszel minden tagváltozót és mindenre csinálsz "no-brain" gettert/settert (mindenféle logika nélkül, csak változó beállítás, változó visszaadás, mint a ahogy a java kódok nagy részénél látható) ezzel lehetővé téve, hogy kívülről megváltoztassák az objektumod belső állapotát, még nem vagy sokkal közelebb az egységbezáráshoz ahhoz képest, hogy mindent publicon hagysz.
[ Szerkesztve ]
Thank you to god for making me an atheist
bucsupeti
senior tag
Nem azt mondtam hogy mindenhez ész nélkül generáltatok getter/setter-t. Ebben a példában simán hibás minden. publikus adattagokkal van minden összedobva. Ez mellett az említett number tagot direktben kérdezi le. Úgy látom ez egy oktató, gyakorló példa, amiben szerintem már régen túl kéne azon lenni, hogy az adattagokra nem hivatkozunk közvetlenül. Ha a p1 objektum el akarja mondani hogy mi az ő tippje, akkor azt mondja meg (metódus) és ne kibányásszák az agyából (közvetlen adattag elérés).
Mégegyszer mondom, OKTATÁSI szinten tartom hibásnak a "minden publikus" elvet.
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
boost
addikt
Szerintem ez kontexusfüggo". Ha az oktatás célja az OO-val való ismerkedés, akkor tényleg kell getter setter,
ha teljesen más, akkor azért érdemes elhagyni, hogy ne kelljen minden példához , 15-20 sor "boilerplate"kód, ami elvonja a figyelmet a példafeladat céljától.
sutszi
veterán
Ez igaz, de később ha logika kell vagy bármilyen módosítás a get/set műveletbe, akkor melyiket könnyebb módosítani? A kész getter/setter-ekbe beleírni vagy minden public-ot private-ra, majd getter/setter-ek ráadásul ha használtad már valahol akkor azokat is át kell írni... ?!
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
WonderCSabo
félisten
Sztem Lortech üzenete itt az akart lenni, hogy nem minden tagnak kell getter/setter, továbbá ahol indokolt, a getter/setterbe egyéb logikát is illik írni az alapvető műveleten kívül.
Pl. vegyük egy Pair osztályt, aminek két darab adattagja van, first és second, és annyi az egész class funkcionalitása, hogy ezt a két értéket hordozza. Ebben az esetben a getter és setter felesleges, nyudogtan lehet public mindkettő.
De pl. van egy Car osztályod, akkor egyes belső adattagoknak nem csinálsz getter/settert, mivel semmi köze hozzá senki másnak, más adattagokhoz meg deklarálsz.
Lortech
addikt
Nem kell belelátni olyat a kommentembe, ami nincs ott. Nem mondtam, hogy ne használj getter/settert, azt mondom, hogy nem ettől leszel önmagában OO konform, ha csinálsz no-brain getter-settert minden meződhöz, ez csak a hamis érzetét kelti. Ha valamit el kell rejteni, akkor rejtsd el. Ha tudni kell hozzáférni, módosítani, akkor kellhet getter/setter. Ha meg _utólag_ logika kell a getter/setterbe, megsértheted a korábbi kontraktot.
[ Szerkesztve ]
Thank you to god for making me an atheist
floatr
veterán
Az osztály szerepétől függ, hogy mennyire kell Bean/POJO-szerűnek lennie. Ha adathordozó, akkor akár lehetnek publikus tagjai is akár set/get nélkül. Ha szolgáltatásokkal foglalkozik, akkor kevesebb set/get kellhet, de privát adatokkal. Ha egy komponens, akkor gyakorlatilag az interfész használatához szükséges set/get metódusokat szabad csak implementálni.
Egy ismerősöm c/c++ fejlesztőként sokat ekézte a tervezési mintákat, de épp az ilyen esetekben jól tud jönni a tanulási időszakban -- mint egy karate szakágban a kata.
bucsupeti
senior tag
+1
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
Aethelstone
addikt
Ezt az adathordozó részt is kicsit árnyalnám. Vannak olyan frameworkok, ahol a sima DTO funkcionalitáshoz is kellenek a setter/getter metódusok, neadjisten még default konstruktor is. Itt a publikus adattag nem elég.
Nyilván az Általad leírt dolgok, akkor érvényesek, ha az ember magának, magától ír mindenféle szoftvert. Ettől függetlenül +1
[ Szerkesztve ]
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
floatr
veterán
Framework-függő, de ha lombokot használsz, akkor tagonként 2 annotációval letudhatod a getter/setter metódusokat is
_kovi_
aktív tag
Hello!
Az SZE-n erőltették azért a getter-settert...
De mindegy is...
[ Szerkesztve ]
-v-
addikt
Jiranak melyik a legjobb ingyenes alternativaja?
YouTrack. De a Jira is olyan olcso (10 dollar), hogy ha pont az kell, akkor erdemes megvenni, senkit nem vag foldhoz 2500 forint.
while (!sleep) sheep++;
-v-
addikt
Van jira, csak ... mind1 bonyolult Redmine?
[ Szerkesztve ]
sutszi
veterán
Használtam Redmine-t majd később JIRA lett belőle... Mindkettőben voltak logikátlanságok, már alap funkcióknál...de alapvetően használható volt mindkettő. A JIRA nekem kényelmesebb volt, bár néha azt éreztem űrhajó a Redmine-hoz képest.
Most ActiveCollab van éppen...érdekes. Egyszerű, gyorsan használható, de egyértelműen vannak hiányosságai a JIRA-hoz képest...
Azt a 10$-t mindenképpen megéri.
[ Szerkesztve ]
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
Cathfaern
nagyúr
JIRA meg a redmine azért eléggé külön kategória szerintem. Jó a redmine, csak az a kérdés hogy pontosan mire van szükséged. Ha arra elég, akkor jó.
raggg
senior tag
Igen igen. Azt tudni kell, hogy a redmineba ha van rá kapacitás bele lehet nyúlni (ruby-s talán?).
YouTrack egyébként jó választás lehet, 5 userig (vagy ott körül) szabadon használható tudtommal.
ragklaatPS
Karma
félisten
Ott van még a Visual Studio Online is, 5 userig szintén ingyenes.
“All nothings are not equal.”
floatr
veterán
Egy ismerősöm a hazai terjesztő, győzd meg őket h tudományos projekthez lesz
Aethelstone
addikt
Mi ezt használjuk: http://trac.edgewall.org/
Ez is jó: http://bloodhound.apache.org/
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
WonderCSabo
félisten
Szerintem jó a Redmine, nyilván helyén kell tudni kezelni. Én írtam hozzá egy plugint magamnak, szerintem a könnyű kiterjeszthetősége az egyik előnye.
WonderCSabo
félisten
Egyébként esetleg Bugzilla?
materk
újonc
Sziasztok
Azt belehet állítani h az entity osztályomban a manytomany listára ne történjen semmiféle rendezés?
Nincs berakva az OrderBy annotáció, de így rendezi kulcs alapján. Nem találtam neten sehol, hogy lehetne kikapcsolni a rendezést. Fontos lenne, mert úgy szeretném megkapni az adatokat amilyen sorrendben belepakoltam és nem akarok új adattagot létrehozni csak az automatikus rendezés miatt. JPA/Hibernate annotáciokat használok.
[ Szerkesztve ]
bucsupeti
senior tag
az objektum azonosító id az nem autoincrement?
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
materk
újonc
identity-n van
floatr
veterán
Ha a hibernate/DB generál ID-t, akkor az automatikusan inkrementált érték lesz. Magyarán ha ID alapján rendezed, akkor beszúrás dátuma alapján is rendezted. Nincsen automatikus rendezés tudtommal, egyszerűen csak ez a természetes sorrend.
materk
újonc
Írok egy példát, remélem érthető lesz.
manytomany listához adok hozzá meglévő rekordokat.
Pl: van 3db A tipusu rekordom 1-2-3 id-vel. Én ezt a B tipusu manytomany listába belerakom 2-3-1 sorrendbe és mikor később lekérem, akkor a listában az objektumok már az 1-2-3 szerint lesznek. Az összekapcsoló táblázatban viszont jó sorrendbe mutatja őket, csak mikor lekérem a listát, az nem felel meg annak a sorrendnek. Ugye van egy táblázatom ahol mutatja a kapcsolatokat, jelen esetbe, id-k alapján 1-2, 1-3, 1-1, feltéve hogy az 1-es kulcsú B entity listájához csapom hozzá ezeket az adatokat.
Azért szeretném így megoldani, mert a 2-es kulcsú B entity listájába ugyanezt a 3 A tipusut akarom csak pl 1-3-2 sorrendbe és így tovább. Ugyanazok a játékosok vesznek részt más versenyeken és így szeretném megvalósítani a helyezéseket, lehet nem így kéne, de még csak most kezdtem el ezt tanulni.
[ Szerkesztve ]
Senhi
aktív tag
Egy kicsit is komolyabb adatbázis esetén nem szabad arra játszani, hogy (rendezés nélkül) az adatok mindig ugyanabban (pl. berakás) sorrendjében kerülnek visszaadásra. Van egy eredeti sorrendjük, de ha a db úgy gondolja, hogy egy lekérdezéshez egy másik sorrend hatékonyabb akkor azt használja.
Ettől függetlenül problémádat szerintem megoldja az @OrderColumn annotáció, amit arra a listára kell rárakni amelynek meg akarod tartani a sorrendjét.
materk
újonc
Köszi szépen, működik, nem is értem, hogy nem akadtam rá erre.
Esetleg tudnál tippet adni, hogy tudnám jobban megvalósítani az elképzelésemet?
Leegyszerűsítve jelenleg vannak felhasználok, akiknek lehetnek versenyezői és a verseny végeredmény alapján kapnak pontokat a felhasználok. Azért gondoltam így, mert azok a versenyzők akikből válogathatnak a felhasználók, az mindenki számára ugyanaz az n db. Gondoltam, ha létrehozok egy listát a verseny entitásban, amibe majd belepakolom a versenyzőket végeredmény alapján, akkor nem hozok létre semmi extra adatot és így elkerülhetem az adatok többszörös tárolását fölöslegesen.
Ez persze adatbaziskezelotol fugg. Vannak olyanok, amiknel tudod, hogy az adatok fizikailag milyen sorrendben lesznek tarolva/beolvasva.
while (!sleep) sheep++;
Szmeby
tag
Hogy mi a jó, az relatív. Neked kell tudnod, hogy mire van szükséged.
Ha jól értem, akkor azt az információt, ami a versenyzők helyezését reprezentálja, a listában lévő elemek sorrendje határozza meg.
Amíg egyedül dolgozol a projekten, nem jelenthet problémát, mert mindent tudsz a programról. Amikor többen is bekapcsolódnak a fejlesztésbe, akkor előtérbe kerül az érthetőség, átláthatóság. Ha úgy gondolod, hogy aki ránéz a kódra és egyből leesik neki, hogy a helyezés a listaelemek sorrendje, akkor nem lesz probléma az értelmezéssel. Amennyiben nem egyértelmű, akkor ennek az információnak láthatóbb helyen kell lennie, pl. egy objektum egy mezőjében.
A jelenlegi helyzetben ezt redundánsnak gondolod, de korábban felvetették, hogy adatbázistól függ, hogy mennyire megbízható a sorrend. A Hibernate alatt pedig semmi perc alatt cserélhető az adatbázis implementáció. De akár olyan galádság is megtörténhet, hogy valaki a jól bejáratott List-et Set-re cseréli, mert nem jut eszébe, hogy a sorrend is fontos. Persze a te esetedben ettől nemigen kell tartani. Viszont az előbbi szituációkban nem jelent redundanciát a helyezés dedikált helyen való eltárolása.
Egy másik érdekes dolog, hogy a listaelemek sorrendjére való építkezés nem támogatja a holtverseny fogalmát. Valószínűleg a véletlen dönt arról, hogy holtverseny esetén ki sorolódik előrébb. Ez tesztelhetőség szempontjából nem feltétlenül ideális állapot. Tesztelhető ugyan, de a véletlen sorrend miatt nehézkes.
Persze ha fontos számodra teszemazt a memóriaméret, a redundancia alacsonyan tartása, és biztosan tudod, hogy a fent említett anomáliák (vagy hasonlók) sohasem történhetnek meg, akkor nem kell dedikált mezőt készíteni a helyezésnek. Felesleges.
Aethelstone
addikt
A Hibernate alatt pedig semmi perc alatt cserélhető az adatbázis implementáció.
Elvileg így van, gyakorlatilag ha MySql alatt raksz az ID oszlopra egy
@GeneratedValue(strategy=GenerationType.IDENTITY)
annotációt, Oracle esetén bajban lehetsz Stb. Egyébként igazad van
[ Szerkesztve ]
MI 10T Pro 8/256 , Arsenal FC - Go Gunnarz...
floatr
veterán
Milyen collection-t használsz a kapcsolat leírására a bean-ben?
materk
újonc
List és arraylistet példányosítok belőle,de az OrderColumn megoldotta.
Mukorka
addikt
Szerintem nem jó pattern ez a hozzáadási sorrend. Db oldalról ha riportot kéne csinálni akkor is úgy keresenéd le az első 3 helyezettet hogy hányadik sorban vannak a táblában? Mi van ha később több infó is kell egy helyezettről, nem csak az hogy ki volt? Teszem azt, idő, pont stb. Sztem ez egy külön helyezés táblát érdemelne. Illetve írtad is hogy végeredmény alapján pakolod be, ezek szerint lenne mi alapján összekötnöd is őket...
[ Szerkesztve ]
Mukor#2214 --- "Ezt nem én gondolom így, EZ EGY TÉNY!"
Fekete Mária
újonc
Senior Java fejlesztő Budapest kimagasló bérezéssel
5 főt keresünk Senior Java fejlesztő pozícióra multinacionális cégünkhöz.
Elvárások:
- Angol középfokú nyelvtudás (Nyelvvizsga nem számít)
- Min. 3-5 éves JAVA környezetben szerzett fejlesztői tapasztalat
- Önálló munkavégzés
- Jó kommunikációs képesség
- Egyműszakos munkarend
- Kimagasló juttatási csomag
Amennyiben Önt, rokonát, ismerősét, kollégáját érdekelheti a lehetőség, küldje el önéletrajzát a következő email címre:
maria.fekete1@upcmail.hu
Szmeby
tag
Az alkalmazott technológiák, módszertanok, felelősségek megemlítése értékes adalék lett volna, ha már a cég neve titok. Kétlem, hogy pusztán a "kimagasló bérezés" elegendő arra, hogy egy fejlesztő váltásra adja a fejét. Legalábbis a jobbak, akik amúgy is jól meg vannak fizetve.
[ Szerkesztve ]
-v-
addikt
Na meg kérdés mi számít kimagasló bérezésnek Sokszor itt félreértések vannak azt hiszem a jó java fejlesztők meg a munkáltatók között Egyébként megdöbbentően sokan recruitolnak így fejvadászok, még a cég nevét se mondják meg, UI vagy backend, technológiák stb. stb. mégis mit várnak, időmilliomos az ember, hogy még ha ne adj isten tényleg épp aktuális is lehet a váltás ennyire hogy "java fejlesztőt keresünk" már ugrik is az ember és megy interjúzni?
[ Szerkesztve ]
Téma tudnivalók
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))