Épp megjöttem egy kis alkoholizálással egybekötött koncertről, épp ideje belenézni a Java topicba
Erre tényleg. Meg is nézem.
Java programozás - Szoftverfejlesztés fórum
hozzászólások
![](/dl/faces/c18.gif)
BaLinux
(tag)
![](/dl/faces/c18.gif)
BaLinux
(tag)
Megjegyzéseim:
mod: amikor elkezdődik a dőlt szöveg, ott volt egy [ i ]. Lesz több is, de semmi kedvem kijavítani mindenhol
- a Kartya.PIN-t inicializáld a véletlen számmal.
- a Penzintezet.befizet(int osszeg, Szamla szamla) metódusban a szamla.egyenleg+=osszeg; ronda. Elvileg eléred, ha nem private, de akkor is szebb egy szamla.addEgyenleg(osszeg);. Későbbi hülyeségektől menthet meg.
- itt hasonlóan:
public int kivesz(int osszeg, Szamla szamla) {
int kivet;
if (szamla.egyenleg<osszeg) {
kivet=szamla.egyenleg;
szamla.egyenleg=0;
return kivet;
}
szamla.egyenleg-=kivet;
return kivet;
}
(ez kicsit rövidebben is írható, de ez most mind1)
- Itt kezdődnek a problémáid (NullPointerException démon képében):
public void befizet(int osszeg, int szamlaID, String nev) {
for (int i=0; i<=MAX_UGYFEL_SZAM; i++) {
// oops, mért MAX_UGYFEL_SZAM-ig? a tömb tele lehet null-okkal. ráadásul túlindexeled a tömböt eggyel!
if (szamlak.getSzamlaID()==szamlaID) {
if (szamlak.getTulajdonos()==nev) {
szamla.egyenleg+=osszeg;
}
}
}
}
helyesen:
public void befizet(int osszeg, int szamlaID, String nev) {
for (int i=0; i<ugyfelekSzama; i++) {
// ugyfelekSzama használandó, ha már van, és tudod hogy addig nem null a tömb.
// esetlegesen egy if (szamlak!=null) is betehető ide, ha össze-vissza lennének, ami nem igaz.
if (szamlak.getSzamlaID()==szamlaID) {
// használhatnál && operátort, nem muszáj külön ifeket.
if (szamlak.getTulajdonos()==nev) {
// itt sejted mit kommentálnék ismét
szamla.egyenleg+=osszeg;
}
}
}
}
a kivesz(...) metódusra hasonlóan.
- a szamlaletrehoz(...)-ban ugye illene egy allokáció, vagy kapsz egy gigantikus NullPointerExceptiont a fejedbe, mint véres fejdísz.
így: new Szamla(...), aztán azon operálva, majd beletéve a tömbbe. Megint, nem írunk át más osztálybeli adattagokat, ha aranyosak vagyunk.
- Takarekpenztar.szamlaletrehoz(...): felüldefiniálást nem úgy kell feltétlenül érteni, hogy copy-paste-1-sor-módosít. Meg lehet hívni a felüldefiniált metódust.
pl: {
if (egyenleg==0) return null;
return super.szamlaletrehoz(egyenleg, nev);
}
Amúgy ez a struktúra amit a feladatban kijelölnek, kicsit rossz lenne komoly alkalmazásnál, dehát csak egy feladat.
- public Terminal(String bank) {
// NullPointerException: bankmezo==null
bankmezo.terminalokSzama++;
// intezetNeve: undefined symbol
intezetNeve=bank;
}
- Terminal.kivesz hiány
Ja, ha jól értem itt befejezted. További sok sikert!
Annyival kommentálnám még az egészet, hogy egy valós alkalmazásban megfelelő adatstruktúrákat alkalmaznék (ami itt ellentmond a feladattal, mert tömböket kell használni), ami nem lineáris keresést tud (Hash, Tree). Tudom, tudom, ez a feladat, bocs hogy beszólok.
[Szerkesztve]
Jó, hogy mindig részeg valamelyikünk
Kösz, hogy átnézted, tényleg nem fél perc lehetett!
Megyek kajálni, aztán nekiállok.
A többit szerintem mailben kellene, nem akarok hsz-gyűjtőnek tűnni
(Igen, lehetne kétirányú dinamikus láncolt listát is használni - C-ben így hívták -, de azt sajnos még Javaból nem tanultam. Majd ZH után arra is sor kerül )
![](/dl/faces/m24.gif)
andriscs
(aktív tag)
Hi!
Tudtok nekem segíteni? Konzolos Java alkalmazást írunk, de van egy aprócska gond. Az ékezetes betűk helyett mindenféle absztrakt jeleket ír ki a DOS ablakban. Tudja valaki, hogy hogyan lehet módosítani a használt betűkészletet? Sürgős lenne. Köszi!
![](/dl/faces/c18.gif)
BaLinux
(tag)
Jah, elcseszett windózos konzol. A System.out-ot (vagy .err-t) wrappeld egy ilyenbe:
PrintStream(OutputStream out, boolean autoFlush, String encoding)
ahol az encoding legyen ''852'' asszem.
Illetve válogathatsz innen: Bővebben: link
![](/dl/faces/m24.gif)
andriscs
(aktív tag)
Hi!
Köszi az építő jellegű hozzászólást, de valahogy a Java nem szereti ezt az OutputStream jellegű dolgot, azt írja rá, hogy nem tudja inicializálni, mert nem egy konkrét osztály. Megnéztem, a kontruktora paraméter nélüli, elvileg semmi akadály nincs, hogy létrehozza, de nem tudja mégsem.
![](/dl/faces/kitty.gif)
maszat
(senior tag)
Köszönöm, ez jól jött. Nem, semmi baj, hogy angol. Én békésen megvagyok vele, mert nagyjából étrem
Mindenki másnak is köszönöm
![](/dl/faces/c18.gif)
BaLinux
(tag)
Ezek szerint nem értetted amire gondolok. Természetesen nem egy OutputStream-et kell létrehoznod, hanem a PrintStreamet!
new PrintStream(System.out, false, ''852'');
Én csak a PrintStream konstruktor paraméterezését vágtam be ide...
mod: megnéztem, az OutputStream osztály absztrakt (és mért ne lenne az, nincs hozzárendelve semmiféle ''kimeneti eszköz'', így natúr), így természetes hogy nem lehet konstruálni. Pontosan mit akartál csinálni?
[Szerkesztve]
![](/dl/faces/m24.gif)
andriscs
(aktív tag)
Hi!
Azt hittem, hogy így gondoltad a PrintStream konstruktorát, hogy egy OutputStream-et fogad paraméterként. Ezért ezt írtam:
OutputStream out=new OutputStream();
PrintStream printer=new PrintStream(out,false,''852'');
És utána ezt akartam csinálni: printer.print(''aéáéáő'');
Ezek szerint nem így kellett volna.
![](/dl/faces/c18.gif)
BaLinux
(tag)
Korrekt, csak az a kérdésem hogy az out az szerinted minek a kimenete lenne? Az így lóg magában és megy a szöveg az éterbe, mi?
Gondoltam vágod, hogy a wrappelendő objektum a System.out vagy System.err, vagy bármilyen létező OutputStream.
![](/dl/faces/m24.gif)
andriscs
(aktív tag)
Hi!
Ok, megértettem, hogy rosszul csináltam. Megpróbálom mégegyszer.
![](/dl/faces/m18.gif)
Badb0y
(addikt)
ÉS meg van a hibám
NEm fogjátok elhinni. Azért nem volt kép amikor elindítottam a JBuildert, mert ha be van kapcsolva az élsimítás, akkor nem ad képet. PFFFF
Na ezt mi.... Úgyhogy amikor elindítom élsimítás off
![](/dl/faces/own/petya_2.gif)
_Petya_
(őstag)
Üdv!
Dinamikus tömböt szeretnék megvalósítani Java-ban. Tehát előre nem ismert számú elemet szeretnék a tömbben tárolni, kezdetben 0 elem, és ha kell, meg tudjam növelni, tudjak hozzávenni mégegy elemet(szövegben kell szavakat számolni, ha új szót találunk, új tömbelemet veszünk fel, ha már volt, akkor a meglévőt növeljük)
Remélem érthetően fogalmaztam...
Petya
![](/dl/faces/m28.gif)
_thomas_
(tag)
Vector osztállyal?? Ebbe gyak. bármit belepakolhatsz és remek karbantartó metódusai vannak (ha jól emlékszem mert régen Javaztam)
üdv.
![](/dl/faces/own/petya_2.gif)
_Petya_
(őstag)
Megnézem referenciadoksiban, hátha jó lesz. Köszönöm!
Petya
![](/dl/faces/own/petya_2.gif)
_Petya_
(őstag)
Ez az, pontosan ez kellett. Csak ha nem tudom a nevét, nem is tudom megkeresni...
Petya