Hirdetés
Új hozzászólás Aktív témák
-
Karma
félisten
-
floatr
veterán
Kb 40 sor formázott XML révén kaphatsz egy olyan környezetet, ahol ORM van, deklaratív a tranzakciókezelés, az egyszerűbb DB műveletek I/F metódus nevek alapján készülnek el, nem kell a példányosítással foglalkoznod, deklaratív az RPC, stb. Ja persze a web.xml-be is kell még vagy 10 sor Ez a bazinagy XML 10+ évvel ezelőtt volt kifutó érv. Manapság egy valamirevaló alkalmazás saját konfigurációja terjengősebb, mint a kontextussal kapcsolatos infó együtt.
Nem akarom ezt senkire ráerőltetni, de 17 év után nekem ide állt be az optimum. Még ha desktop jellegű fejlesztés is kellene, akkor is egy embedded stack-et rakok inkább össze, ha már DB kell, mert sokkal rugalmasabb, és végül az igények mindig meglódulnak a hálózatos/többfelhasználós irányba előbb vagy utóbb. Sajnos vagy sem, nagyon kevés a kivétel.
(#5897) raggg mindennek megvan a maga oka. Néha az, hogy szar az egész
[ Szerkesztve ]
-
floatr
veterán
-
boost
addikt
Kezdo"Javasnak web tanulásra én még mindig JDBC, JSP és Java Servletet ajánlok. Ha végzett a Java Servlet c könyvvel, akkor jöhetnek a további lépések, mint Hibernate JPA, JSF, kis Spring. Aztán így tovább. Talán felesleges köröknek tu"nnek, de így nem zúdul annyi értelmetlenség a nyakába, mintha mindjárt ExtJS-el, meg Springgel, esetleg EJBvel kezdene.
-
Szmeby
tag
válasz Aethelstone #5887 üzenetére
És mind felesleges, mert tiszta javaban ugyanazt el lehet érni kevesebb erőforrás felhasználásával.
Persze több meló és odafigyelés, de valamit valamiért. -
bucsupeti
senior tag
válasz Aethelstone #5885 üzenetére
+1
A JDBC segítségével az adatbáziskezelés fapados módját ismerje meg, majd utána jöjjön az ORM!
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
n00n
őstag
Hú. Köszi mindenkinek a tanácsokat. Utánaolvasok mindannak amit írtatok. Egyébként Desktop GUI-val "foglalkoztam" már. Swing-ben írtam már egy két kisebb alkalmazást. Most inkább a webes dolgok érdekelnének.
-
floatr
veterán
Épp a gyakorlás az, amikor érdemes mindent kipróbálni.
Részemről:
- Gradle vagy Maven
- Spring
- legalább egy Derby szerver módban
- Hibernate/JPA
- Spring Data JPA
- QueryDSL
- Spring MVC REST controllerekkel, Security
- szigorúan csak embedded Jetty
- JQuery vagy Sencha ExtJS -- utóbbinál a vektorgrafika sem kihívás a nézőtér összerakásánálAbban mondjuk egyetértünk, hogy érdemes a tanulás miatt iteratívan újra átdolgozni a megoldást, de a desktopos részt én kerülném, mint a leprást.
[ Szerkesztve ]
-
bucsupeti
senior tag
Ez a példa amit felvázoltál Java EE tanulásra tényleg megfelelő. De ha most kezded a JAVA-t akkor lehet hogy inkább valamilyen lokális alkalmazást JAVAsolnék.
Az EE-t én is nem régen kezdtem és hatalmas a téma, rengeteg framework kínálja magát, az adatbázisokról és a perzisztenciakezelőkről nem is beszélve.A példád alapján én a következőt javaslom:
Csináld meg a felvázolt példát karakteres JAVA programként. Lehessen lekérdezni a szabad helyeket, amit egyenlőre kilistázna. Akár lehet bonyolítani hogy bekéri hogy a nézőtér melyik sorára kíváncsi a felhasználó, ezt beírva kiírná hogy az adott sorban milyen sorszámú székek szabadok.
Jó kis tanuló algoritmus lehet hogy megadja a felhasználó hogy hány helyet szeretne és kilistázza hogy hol tud ennyi széket egymás mellett foglalni stb...Ezt először csináld meg adatbázis nélkül a memóriában tárolva konténerekkel. Utána csináld meg JDBC-vel adatbázisban, majd valamilyen perzisztenciakezelővel.
Meg fogod tapasztalni hogy milyen jó dolog egy ORM rendszer.
Ezek után belekóstólhatsz a gui programozásba, lokális desktop alkalmazást csinálva swing komponensekkel.Ezek után jöhet a felvázolt weboldal, de ez nagyobb falat lesz az biztos. A JavaEE megismerése nem kis feladat. Meg kell ismerni az architekturát, a servlet konténereket, az alkalmazásszervereket. Utána jöhet az EJB programozás és valamilyen framework amivel kényelmesen tudod összerakni a ui-t.
A példa szerintem jó, meg lehet rajta keresztül sokmindent tanulni. Sok sikert és kitartást!
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
Aethelstone
addikt
Ha még kezdő Java-s vagy, akkor hiába írnánk bármit, amit mi használunk
Én a GWT, Spring Core/Security, Hibernate, MySQL/Derby combóra szavaznék, ha nem nagy az alkalmazás.Arsenal FC - Go Gunners!
-
Senhi
aktív tag
Tiszta JavaEE-vel:
Db-nek jó szerintem a Mysql.
Szervernek a legegyszerűbb a TomEE, esetleg GlassFish.
Adatréteg JPA, hozzá providernek EclipseLink
Üzleti-logika: EJB-k
Megjelenítés: JSF + ehhez kiegészítésként PrimeFaces amivel több komponensed lesz. Mondjuk JSF helyett millió egy másik technológia van, majd többiek mondanak mást. -
n00n
őstag
Sziasztok!
Szeretnék csak gyakorlás céljából készíteni egy kisebb Java alkalmazást. Ez így nézne ki:
Lenne egy weboldal (bárki által elérhető), ide ellátogatnának a userek és látnának eseményeket (koncert, színház, stb). Itt tudnának jegyet foglalni az eseményre, tehát megjelenne nekik egy panel ahol kiválasztják grafikusan az ülőhelyeket (a már foglaltak piros színűek, a szabadok zöldek) és elküldik a foglalást.
Ez nyilván egy adatbázisban tárolódna. Én a MySQL-re gondoltam.
A másik oldalon pedig ülne egy adminisztrátor, aki webes felületen látná a foglalásokat grafikusan, meg ilyenek.
A kérdésem, hogy ti milyen technológiákat választanátok ehhez? Kezdő vagyok Java-ból, szeretnék fejlődni és úgy gondolom egy ilyen nagy, gyakorlati projekt sokat segítene. Ezért kérem, hogy érhetően írjátok le, hogy mit használnátok és én utána olvasok a dolgoknak. Köszönöm.
-
axioma
veterán
válasz Cathfaern #5869 üzenetére
Elozo m.helyemen az integracios teszt az adott szoftvert vizsgalta, de kivul me'g lehetett (volt) mesterseges kornyezet. A systemtest meg mar a tobbi (nem mind feltetlen szoftver) rendszerelem tekinteteben is valos volt, adott esetben peldaul itt eresztettek ossze olyan kornyezettel, ahol egyszerre tobb kulonbozo verzioju is jelen volt az adott szoftverbol, ha ugy volt a speckoban akkor egyszerre is. [Na meg a stessz-teszt is a systemtest szintjen volt igazan erdekes.]
-
-
Cathfaern
nagyúr
válasz plaschil #5868 üzenetére
Komponensteszt (felteszem ez alatt a unit testet értjük) egyértelműen a fejlesztő feladata 100%-ban. Itt lényegében ő ír automatizált teszteket az általa megírt kódhoz.
Integrációs teszt is a fejlesztő feladata, bár itt már nem feltétlen egyértelmű, hogy az írja az automatizált tesztet aki fejlesztette a kódot (illetve ez tipikusan arról szokott szólni, hogy két külön ember által fejlesztett részrendszer együtt is működik-e rendesen. De persze akkor se árt ilyen, ha a két részrendszert ugyanaz az ember fejlesztette).
Rendszerteszt: na ez nem tudom pontosan mit takar. Leginkább viselkedéstesztnek gondolnám, tehát amikor már nem azt nézzük, hogy az egyes leprogramozott dolgok jól működnek-e, hanem hogy az egész rendszer azt csinálja-e amit elvárunk tőle. Ez tipikusan felhasználó felület teszt szokott lenni, jobb esetben automatizálva. Ha automatizálva van, akkor fejlesztőnek lehet köze hozzá, bár tipikusan ezt már egy külön tesztelő csapat szokta csinálni.
UAT: magát az elnevezést nem ismerem, de a "szűk körű végfelhasználói teszt" megnevezés alapján itt a fejlesztőnek csak annyi a feladata, hogy remegve várja, hogy milyen bugokat találnak a userek -
plaschil
aktív tag
Szervusztok!
Olvasom hogy van komponensteszt, integrációs teszt, rendszerteszt, UAT teszt. Ebből az első hármat fejlesztői tesztnek hívják az anyagok, az UAT-ot pedig szűk körű végfelhasználói tesztnek.
A kérdésem az volna, hogy melyikben hol van jelen a tesztelő? Pl. automatizáláskor.
[ Szerkesztve ]
Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!
-
boost
addikt
válasz Fekete Mária #5847 üzenetére
Szerintem meg ez nem hírdetési oldal, hanem szakmai topic.
-
Aethelstone
addikt
Nah ilyet sem láttam még eddig
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007aac80000, 524288, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 524288 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/<foo>/dev/lucene/lucene-root/lucene-db/hs_err_pid12425.logArsenal FC - Go Gunners!
-
floatr
veterán
válasz Aethelstone #5859 üzenetére
Ha multi, akkor távbabrálásban jönnek a román, majd indiai kollégák. Ez van. A 10 órás marhaságra meg csak annyit lehet mondani, hogy tehetségtelen PM/architekt emberekkel is tele van a piac, emiatt van ez, meg hogy leprásként tekintenek sok helyen a 30+ családosakra, mintha az lenne a normális, hogy az ember bent éli az életét.
-
Aethelstone
addikt
Jah. És amikor az ember bemond egy komolyabb összeget (amit az álláshirdetésben szereplő szükséges ismeretek indokolnak), akkor meg hápognak, hogy de ők ezt nem tudják kitermelni, meg tudom én, hogy nekik mennyibe kerül a munkavállaló? Persze 10 év Java tapasztalat kell, meg minden releváns Java technológiában legyél otthon, meg legyél lojális, napi 10 órában, de ha mindezért benyögsz 500K fölött nettót, akkor eldobják magukat....
[ Szerkesztve ]
Arsenal FC - Go Gunners!
-
floatr
veterán
válasz M_AND_Ms #5856 üzenetére
Komoly cég megbíz olyanokat, akik bárhol keresnek.
Egyébként nem csodálkozok ezen, mert nem túl jó irányban alakult a piac az utóbbi években a furcsa felhozatal révén. Érdekes elvárások vannak mindkét fél részéről, közben csak hígul a szakma. Emiatt az értékesebb emberek gyakran elszállnak (többnyire emberileg), sokan kivándorolnak... Ez van.
Sok szerencsét a keresőknek! Szükségük lesz rá.
-
axioma
veterán
Az, egy elovalogatast vegzo cegig jutottam egy gugli keresessel.
Tobb adatot nem hiszem hogy mondani fog, mert 5 senior fejleszto egyszerre az jo esellyel szaz fejleszto feletti ceg lehet, azokbol meg annyira nagyon sok nincs. Multkor irta valaki a jovedelmes topikban, hogy ugyanigy titkoloztak neki nagy cegrol, de x het Londonnal kezdes elhangzott, erre ravagta hogy a MorganStanley nem erdekli -
-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 ]
-
Szmeby
tag
válasz Fekete Mária #5847 üzenetére
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 ]
-
Fekete Mária
csendes tag
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 -
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!"
-
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 ]
Arsenal FC - Go Gunners!
-
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.
-
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. -
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
Í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 ]
-
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 ]
-
WonderCSabo
félisten
Egyébként esetleg Bugzilla?
-
Karma
félisten
Ott van még a Visual Studio Online is, 5 userig szintén ingyenes.
“All nothings are not equal.”
-
MrSealRD
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
-
-v-
addikt
Jiranak melyik a legjobb ingyenes alternativaja?
-
floatr
veterán
válasz Aethelstone #5820 üzenetére
Framework-függő, de ha lombokot használsz, akkor tagonként 2 annotációval letudhatod a getter/setter metódusokat is
-
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 ]
Arsenal FC - Go Gunners!
-
floatr
veterán
válasz Lortech #5817 üzenetére
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.
-
Lortech
addikt
válasz MrSealRD #5815 üzenetére
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
-
WonderCSabo
félisten
válasz MrSealRD #5815 üzenetére
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. -
MrSealRD
veterán
válasz Lortech #5812 üzenetére
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
-
boost
addikt
-
bucsupeti
senior tag
válasz Lortech #5812 üzenetére
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..."
-
Lortech
addikt
válasz bucsupeti #5809 üzenetére
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
-
D4nte
csendes tag
válasz RaPiDsHaRe #5808 üzenetére
"at GameLauncher.main(GameLaucher.java:2)"
Fájlneveket ellenőrizd. Az a GameLaucher kicsit hiányos.
-
WonderCSabo
félisten
válasz RaPiDsHaRe #5808 üzenetére
"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.
-
bucsupeti
senior tag
válasz RaPiDsHaRe #5808 üzenetére
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.jarEgyé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..."
-
RaPiDsHaRe
aktív tag
válasz bucsupeti #5807 üzenetére
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
válasz RaPiDsHaRe #5805 üzenetére
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..."
-
Szmeby
tag
válasz RaPiDsHaRe #5796 üzenetére
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 ]
-
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();
}
} -
zserrbo
aktív tag
válasz caindwan #5801 üzenetére
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 ]
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Ukrajnai háború
- Gyúrósok ide!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Kormányok / autós szimulátorok topikja
- Formula-1
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- PlayStation 5
- Milyen billentyűzetet vegyek?
- Milyen légkondit a lakásba?
- További aktív témák...
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Axon Labs Kft.
Város: Budapest