- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
- gban: Ingyen kellene, de tegnapra
- gerner1
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Fűzzük össze a szavakat :)
- djculture: Az elvileg már senkinek nem kellő HDD-k ára is egekbe emelkedett 4 hónap alatt
- eBay-es kütyük kis pénzért
- Gurulunk, WAZE?!
- Archttila: SMART tesztelés automatizálva: smartctl poller script Zsh-ban, RPi-re
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Szmeby
tag
Köszönöm mindenkinek a segítséget, nektek köszönhetően sikerült túllendülnöm a problémán.
(#10653) Szmeby: az első karakter szortírozásnak az volt a célja, hogy ha bizonyos számokkal kezdődött a telefonszám, akkor a megfelelő osztályt kellett meghívnia, ahol kiszámolta az adott szolgáltató díjszabása szerinti összeget.
A System.exit()-et valóban nem szeretem használni, de if-else esetében hirtelen nem tudtam mást kitalálni, aztán inkább váltottam switchre, ahogy (#10654) axioma is javasolta.
Valóban nem tanultam még az exceptionről, de utánanéztem azóta.
A változók nevét azért írtam nagy kezdőbetűvel, mert a feladatban is így szerepelt, és a kiértékelő már ezért is pontlevonással büntet, ha nem minden ugyanúgy van, ahogy elvárják.
Végül pedig, a return phoneNumber-t tényleg elég volt egyszer kitennem, a legvégén, és sikerült működésre bírnom.(#10654) axioma: a konstruktorokkal igazad volt, elfeledkeztem róluk, utólag pótolva megoldódott a probléma.
Az öröklést már az elején beállítottam, azzal nem volt semmi gond, de köszönöm, hogy felhívtad rá a figyelmet.(#10655) sztanozs: Igen, a feladat meghatározása és kiértékelése elég szigorú, sajnos minden értéket ugyanúgy kellett felvennem, ahogy a meghatározásban szerepelt.
A szortírozós kérdésem inkább elgondolkoztató jellegű volt. Ha tudod, hogy egyéb esetekben milyen díjszabást kell alkalmazni, akkor azt a konstruktort kell meghívnod és az objektumot visszaadnod, ami azt a díjat számolja ki.
De látom, hogy sikerült megoldani, úgyhogy nem ragozom tovább. Grat! -
Zsoxx
őstag
Köszönöm mindenkinek a segítséget, nektek köszönhetően sikerült túllendülnöm a problémán.
(#10653) Szmeby: az első karakter szortírozásnak az volt a célja, hogy ha bizonyos számokkal kezdődött a telefonszám, akkor a megfelelő osztályt kellett meghívnia, ahol kiszámolta az adott szolgáltató díjszabása szerinti összeget.
A System.exit()-et valóban nem szeretem használni, de if-else esetében hirtelen nem tudtam mást kitalálni, aztán inkább váltottam switchre, ahogy (#10654) axioma is javasolta.
Valóban nem tanultam még az exceptionről, de utánanéztem azóta.
A változók nevét azért írtam nagy kezdőbetűvel, mert a feladatban is így szerepelt, és a kiértékelő már ezért is pontlevonással büntet, ha nem minden ugyanúgy van, ahogy elvárják.
Végül pedig, a return phoneNumber-t tényleg elég volt egyszer kitennem, a legvégén, és sikerült működésre bírnom.(#10654) axioma: a konstruktorokkal igazad volt, elfeledkeztem róluk, utólag pótolva megoldódott a probléma.
Az öröklést már az elején beállítottam, azzal nem volt semmi gond, de köszönöm, hogy felhívtad rá a figyelmet.(#10655) sztanozs: Igen, a feladat meghatározása és kiértékelése elég szigorú, sajnos minden értéket ugyanúgy kellett felvennem, ahogy a meghatározásban szerepelt.
Miféle oktatási intézmény az, ahol nem ismerik az alapvető kódolási konvenciókat?
-
Taoharcos
aktív tag
Hogy lehetne megoldani, hogy if-else szerkezeten belül a megfelelő return hajtódjon végre?
(A feladat szerint a String szam telefonszám bekérése után a megfelelő osztályba kerülünk, ahol további számítások vannak, de azt már megírtam.)private static PhoneNumber PhoneNumber; //gyanítom erre is szükség leszpublic static PhoneNumber create(String szam) {String regex = "\\d+";String firstLetter = String.valueOf(szam.charAt(0));if (szam.matches(regex) == false) {System.out.println("nem jó");System.exit(0);} else if (szam.matches(regex) == true) {System.out.println("tartalmazza");if (firstLetter == "1") {PhoneNumber = new KwakPhoneNumber();return PhoneNumber;} else if (firstLetter == "8") {PhoneNumber = new IkiPhoneNumber();return PhoneNumber;} else if (firstLetter == "9") {PhoneNumber = new McChipPhoneNumber();return PhoneNumber;}}return PhoneNumber; //ez itt a fő kérdés, hogyan adjam vissza a megfelelő returnt}Ami statikus azért miért kell példányosítani?
-
sztanozs
veterán
Hogy lehetne megoldani, hogy if-else szerkezeten belül a megfelelő return hajtódjon végre?
(A feladat szerint a String szam telefonszám bekérése után a megfelelő osztályba kerülünk, ahol további számítások vannak, de azt már megírtam.)private static PhoneNumber PhoneNumber; //gyanítom erre is szükség leszpublic static PhoneNumber create(String szam) {String regex = "\\d+";String firstLetter = String.valueOf(szam.charAt(0));if (szam.matches(regex) == false) {System.out.println("nem jó");System.exit(0);} else if (szam.matches(regex) == true) {System.out.println("tartalmazza");if (firstLetter == "1") {PhoneNumber = new KwakPhoneNumber();return PhoneNumber;} else if (firstLetter == "8") {PhoneNumber = new IkiPhoneNumber();return PhoneNumber;} else if (firstLetter == "9") {PhoneNumber = new McChipPhoneNumber();return PhoneNumber;}}return PhoneNumber; //ez itt a fő kérdés, hogyan adjam vissza a megfelelő returnt}Ugyanaz a változónév mint az osztály neve? Nem sivít emiatt a fordító? Btw, ha nem megfelelő a formátum, akkor én simán dobnék egy exception-t.
-
axioma
veterán
Hogy lehetne megoldani, hogy if-else szerkezeten belül a megfelelő return hajtódjon végre?
(A feladat szerint a String szam telefonszám bekérése után a megfelelő osztályba kerülünk, ahol további számítások vannak, de azt már megírtam.)private static PhoneNumber PhoneNumber; //gyanítom erre is szükség leszpublic static PhoneNumber create(String szam) {String regex = "\\d+";String firstLetter = String.valueOf(szam.charAt(0));if (szam.matches(regex) == false) {System.out.println("nem jó");System.exit(0);} else if (szam.matches(regex) == true) {System.out.println("tartalmazza");if (firstLetter == "1") {PhoneNumber = new KwakPhoneNumber();return PhoneNumber;} else if (firstLetter == "8") {PhoneNumber = new IkiPhoneNumber();return PhoneNumber;} else if (firstLetter == "9") {PhoneNumber = new McChipPhoneNumber();return PhoneNumber;}}return PhoneNumber; //ez itt a fő kérdés, hogyan adjam vissza a megfelelő returnt}Egyreszt tipikus switch-case pelda az else if-ek helyett, ha mar tanultatok.
Masreszt gyanus, hogy az altipusok konstruktorai nem kapjak meg a szam nevu stringet.
Harmadreszt lehet egybolreturn new KwakPhoneNumber(szam);alakban. Vagy ha mar mindenkepp valtozoba is teszed (bar ez a jelen reszlet nem indokolja), akkor nem kell az adott agon vissza is adni, eleg az ahova odakommentelted...ami jelenleg nonreachable, az IDE nem jelzi neked?ja nem, akkor az jo, ha az az altalanos eset, de ott is kene akkor egy konstruktorhivas es a parameter megadasa.[Amugy az altipusok azok leszarmazottjai rendesen a PhoneNumbernek? Mert anelkul nem fog menni.]
-
Szmeby
tag
Hogy lehetne megoldani, hogy if-else szerkezeten belül a megfelelő return hajtódjon végre?
(A feladat szerint a String szam telefonszám bekérése után a megfelelő osztályba kerülünk, ahol további számítások vannak, de azt már megírtam.)private static PhoneNumber PhoneNumber; //gyanítom erre is szükség leszpublic static PhoneNumber create(String szam) {String regex = "\\d+";String firstLetter = String.valueOf(szam.charAt(0));if (szam.matches(regex) == false) {System.out.println("nem jó");System.exit(0);} else if (szam.matches(regex) == true) {System.out.println("tartalmazza");if (firstLetter == "1") {PhoneNumber = new KwakPhoneNumber();return PhoneNumber;} else if (firstLetter == "8") {PhoneNumber = new IkiPhoneNumber();return PhoneNumber;} else if (firstLetter == "9") {PhoneNumber = new McChipPhoneNumber();return PhoneNumber;}}return PhoneNumber; //ez itt a fő kérdés, hogyan adjam vissza a megfelelő returnt}Ha tudod, hogy az 1 a Kwak, 8 az Iki, és a 9 pedig McChip, akkor azt is illene tudnod, hogy az összes többi esetben (0, 2, 3, stb) micsoda. Nos, ezt a bizonyos
new MicsodaPhoneNumber()-t fogod azokban az esetekben visszaadni.
Mi a célja az első karakter szerinti szortírozásnak?Megj. 1: Stringeket ne hasonlíts össze egymással az
==operátort használva, mert hibás eredményt kaphatsz, aString#equals()javasolt helyette. De akár maradhatott volna char is az a firstLetter. Mindezektől függetlenül aString#startsWith()picit átláthatóbbá tenné a kódot.Megj. 2: A System.exit() nem szép, ne nagyon szokd meg. Majd amikor tanulsz az Exception-ről, egy világ tárul ki előtted.
Megj. 3: Az
== trueelhagyható. Az== falseis, amennyiben használod a!operátorral jelzett tagadást. Vagy egyszerűen else if helyett csak simán az else kifejezést használod (persze ez esetben meg kell cserélni a két külső blokkot, és a végén lesz a hibás formátum jelzése, de ez semmit nem változtat a működésen).Megj. 4: Jávában a változók neveit kisbetűvel kezdjük, ez egy ilyen konvenció.
Megj. 5: Ha megfigyeled, hogy minden if blokkod ugyanúgy végződik (
return phoneNumber;), akkor felmerülhet a gondolat, hogy felesleges annyiszor megismételni azt, elegendő az összes if blokk mögött elhelyezni, csupán egyszer, az eredmény ugyanaz lesz. -
mobal
nagyúr
-
axioma
veterán
Sziasztok.
Hogy lehet egyik osztály függvényéből átadni értéket egy másik osztály függvényének?
Jelen esetben:
Innen szeretném
public class Ital {
String nev;
double szazalek;
int ml;
public double getAlkoholGramm() {
return 0.8*ml*szazalek/100.0;
}
}a getAlkoholGramm() függvény értékét átadni a veralkoholEzrelek() függvénynek:
public class Ember {
String nev;
int kilogramm;
double alkoholGramm;
public double veralkoholEzrelek() {
return alkoholGramm / kilogramm;
}
}Ha a veralkoholEzrelek()-be beleírom, hogy
alkoholGramm = Ital.getAlkoholGramm();, akkor pedig ezt az üzenetet írja ki NetBeans: non-static method getAlkoholGramm() cannot be referenced from a static contextTudnátok segíteni, hogy mi a gond és hogyan lehet megoldani? Előre is köszönöm!

A gond ott kezdodik (bocs, nem bantas, hanem segitseg akar lenni), hogy mas az osztalydefinicio es mas a peldany.
Menjunk vissza, mi a cel? Lesznek ember-peldanyaid, meg ital-peldanyaid, es az a kerdes, hogy ha megissza egy emberpeldany az italt, mi a(z uj) veralkohol-szintje. Vagy az jobban illik az eddigi kododhoz, hogy ha meginna, mennyivel emelne a veralkohol-szintjet.Szoval a lenyeg, hogy a fenti, nevezzuk inkabb verezrelekNoveles() fuggvenyednek kene egy Ital tipusu parametert definialni, es az adott ital-peldanytol elkerni a megfelelo adatot.
public double verezrelekNoveles(Ital egyital) {
return egyital.getAlkoholGramm() / kilogramm;
}Az elnevezes most direkt ilyen "kilogo", hogy jobban lasd a kulonbseget, de nem kovetendo.
szerk. lassu vagyok... keresztposzt
-
Zsoxx
őstag
Sziasztok.
Hogy lehet egyik osztály függvényéből átadni értéket egy másik osztály függvényének?
Jelen esetben:
Innen szeretném
public class Ital {
String nev;
double szazalek;
int ml;
public double getAlkoholGramm() {
return 0.8*ml*szazalek/100.0;
}
}a getAlkoholGramm() függvény értékét átadni a veralkoholEzrelek() függvénynek:
public class Ember {
String nev;
int kilogramm;
double alkoholGramm;
public double veralkoholEzrelek() {
return alkoholGramm / kilogramm;
}
}Ha a veralkoholEzrelek()-be beleírom, hogy
alkoholGramm = Ital.getAlkoholGramm();, akkor pedig ezt az üzenetet írja ki NetBeans: non-static method getAlkoholGramm() cannot be referenced from a static contextTudnátok segíteni, hogy mi a gond és hogyan lehet megoldani? Előre is köszönöm!

Csak statikus metódust tudsz meghívni osztálynévvel (Ital.getAlkoholGramm()).
Példányosítani kell az Ital osztályt, és azon a példányon meghívni a getAlkoholGramm() metódust. -
axioma
veterán
Nekem még így sem jó:
Kérem a diák nevét!
Szabó István
Kérem a diák születési évét!
1996
Kérem a diák átlagát!
3.4
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextDouble(Scanner.java:2413)
at diakteszt.Diakteszt.beker(Diakteszt.java:19)
at diakteszt.Diakteszt.main(Diakteszt.java:28)
C:\Users\Vesp\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 18 seconds)Szerk.: igazad van, az instance volt a probléma, kivettem és így már rendesen kiírta. Az átlagot viszont csak vesszővel fogadta el.
Nagyon köszönöm a gyors segítséget!
Asszem 6-os de lehet hogy 7-es ota mar az op.rdsz szerinti tizedes-jelet hasznalja (volt is baj a magyar gepeken futtatott, float szamokat vesszovel osszefuzve hasznalo programnal, visszaparse-nal 2x annyi int lett belole...)
-
sztanozs
veterán
Sziasztok!
Adott ez a kód:
package diakteszt;
import java.util.Scanner;
public class Diakteszt {
String nev;
int szuletesiEv;
double atlag;
public void beker() {
Scanner sc = new Scanner(System.in);
Diakteszt bekert = new Diakteszt();
System.out.println("Kérem a diák nevét!");
bekert.nev = sc.nextLine();
System.out.println("Kérem a diák születési évét!");
bekert.szuletesiEv = sc.nextInt();
System.out.println("Kérem a diák átlagát!");
bekert.atlag = sc.nextDouble();
}
public void kiir() {
System.out.println(nev + " (" + szuletesiEv + "; " + atlag + ")");
}
public static void main(String[] args) {
Diakteszt bekert = new Diakteszt();
bekert.beker();
bekert.kiir();
}
}Lefuttatva viszont nem jeleníti meg a bevitt adatokat:
Kérem a diák nevét!
Szabó István
Kérem a diák születési évét!
1996
Kérem a diák átlagát!
3,4
null (0; 0.0)
BUILD SUCCESSFUL (total time: 15 seconds)Tuti valami kis apróságon csúszok el, de fogalmam sincs, mi lehet vele a probléma. Tudnátok segíteni?
3,4 (tizedes vesszővel) nem megfelelő double reprezentáció. Ha 3.4-et (tizedes ponttal) adtál volna meg, akkor megjelenítette volna.Ja és a nagyobb probléma, hogy beker-ben nem kell új instance, mert nem a jelen instance-ra állítod be a változókat, hanem az újonnan létrehozottra:
public void beker() {
Scanner sc = new Scanner(System.in);
System.out.println("Kérem a diák nevét!");
nev = sc.nextLine();
System.out.println("Kérem a diák születési évét!");
szuletesiEv = sc.nextInt();
System.out.println("Kérem a diák átlagát!");
atlag = sc.nextDouble();
} -
Lortech
addikt
Amikor deklarálsz egy metódust, mindig meg kell adni a visszatérési értékének típusát vagy a voidot.
Vegyünk két metódust:
void m1() {
}String m2() {
return "visszatérési érték";
}m1 void, ami azt jelenti, hogy nincs visszatérési értéke, azaz a metódus hívás nem használható olyan kontextusban, ahol egy értéket várunk.
pl.
String x = m1(); //hibás, mert m1 nem tér vissza értékkel.
System.out.println(m1()); //hibás, mert m1 nem tér vissza értékkel.
x = m2(); // ok, x értéke "visszatérési érték" leszUgyanígy m1 metódus törzsében nem adhatsz meg pl. return "xyxy"; utasítást, mert nem térhetünk vissza értékkel, ellenben megadhatunk return; utasítást, amivel jelezzük, hogy adott ponton térjen vissza a metódus (visszatérési érték nélkül).
pl.void m1() {
return "xyxy"; //hiba
return; //ok, de nem kötelező, itt felesleges
} -
kispx
addikt
Sziasztok!
Szeretnék Java-t tanulni, de előtte természetesen szeretném megtanulni a programozás alapjait, mivel mindenhol azt olvasom, hogy enélkül nem fog menni. Viszont konkrétan nem tudom, hol kezdjem.
Az Agyhullám Java könyvből meg tudom tanulni az alapokat?
Visszaolvastam a topicot is, amikor mások is hasonlókat kérdeztek, de nem találtam választ ezekre a kérdésekre. (Vagy csak átsiklottam felettük.)
Tudnátok ebben segíteni? Akár konkrét könyvekkel, vagy oldalakkal, stb.Előre is köszönöm!
Jó lesz kezdésnek. Többen is azt javasolták, mivel az alapoktól kezdi.
Új hozzászólás Aktív témák
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- Java programozás
- (kiemelt téma)
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- BESZÁMÍTÁS! 8TB WD RED WD80EFAX HDD meghajtó garanciával hibátlan működéssel
- GAMER PC! Ryzen 9800X3D / RTX 5080 / B650 Strix / 32GB 6000MHz / 1000w Gold! BeszámítOK
- Apple iPhone 14 Pro Max 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új! Gigabyte Aero X16 UltraSlim Gamer Laptop Ryzen 7 350 32GB 1TB RTX 5060 16" QHD+ 165Hz Garancia
- Lian Li LCD-s 360mm-es vízhűtés akciós áron eladó!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


