Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Vesporigo

    aktív 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. :R

    (#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.

  • Vesporigo

    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 lesz

    public 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
            }

  • Vesporigo

    aktív tag

    Valaki elmagyarázná nekem (valami egyszerűbb példán keresztül), hogy mik a factory metódusok, és mire használjuk őket? Előre is köszönöm! :R

  • Vesporigo

    aktív tag

    Zsoxx és axioma: nagyon köszönöm mindkettőtöknek a segítséget! :R Tényleg a példányosítás hiánya volt a probléma. Utánaolvastam, mert erről még nem volt szó abban a tananyagban, amiből tanulom. Mondjuk így elég durva, hogy az elvárt feladatot csak a következő tananyagokban lévő tudásból kellene megoldani... :D

    A main függvényben egyébként scanner-rel beolvasom az embereket és az italokat, és azok alapján számolgatok, majd iratok ki értékeket. Elnézést, hogy azt nem másoltam be.

    Mégegyszer köszönöm, fantasztikusak vagytok! :)

  • Vesporigo

    aktív tag

    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 context

    Tudnátok segíteni, hogy mi a gond és hogyan lehet megoldani? Előre is köszönöm! :R

  • Vesporigo

    aktív tag

    válasz sztanozs #9774 üzenetére

    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!

  • Vesporigo

    aktív tag

    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?

  • Vesporigo

    aktív tag

    válasz Lortech #9702 üzenetére

    Többször nekifutottam annak, amit írtál, plusz még utánaolvastam pár helyen és végre értem. A példákat - amiket felhoztál - nagyon köszönöm, így már sokkal egyszerűbb volt megértenem!
    Még1x nagyon köszi! :R

    (#9703) Aethelstone: Neked is köszönöm a segítséget! Én is így gondolom.

    Apropó, hogyhogy nem készült még nyitó hsz? Pár gondolatot, könyvet, ajánlást bele lehetne tenni. Persze eddig a keresővel nagyjából mindent megtaláltam, de szerintem érdemes lenne.

  • Vesporigo

    aktív tag

    Még csak most ismerkedek a Javaval és rögtön felmerült egy kérdés: mit jelent, hogy a void metódusnak nincs visszatérési értéke? Találtam magyarázatokat, de egyszerűen nem értem. Valaki el tudná magyarázni röviden, érthetően?

  • Vesporigo

    aktív tag

    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 hozzászólás Aktív témák

Hirdetés