NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!

Diskuze – Lekce 2 - První objektová aplikace v Javě - Hello object world

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
Avatar
Alesh
Tvůrce
Avatar
Odpovídá na Gemy
Alesh:1.12.2020 23:56

Jelikož se celou dobu pohybuješ uvnitř objektu a jediné, co potřebuješ je do A přiřadit X a do B Y, tak určitě správný postup je ten první, dodržuješ zapouzdření, návrh je jednoduchý, funkční, na první pohled čitelný. Gettery a settery slouží primárně pro komunikaci "z vnějšku".

 
Odpovědět
1.12.2020 23:56
Avatar
František Chromý:28.5.2021 15:35

Vymyslel som to takto, nepekne a neefektivne:
Main

package onlineappobject;

import java.util.Scanner;
/**Hlavna trieda programu*/
public class KalkulackaOOP {
    /**
     * Komunikuje s uzivatelom
     * @param
     * @return
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Vítejte v kalkulačce");
        String pokracovat = "ano";
        while (pokracovat.equals("ano")){
            //Metoda pre zadanie vstupnych hodnot
            KalkulackaVstup kalkulackaVstup;
            kalkulackaVstup = new KalkulackaVstup();
            float[] vysledok = kalkulackaVstup.Vstup();
            // Metoda pre vypocet a zobrazenie vysledku
            KalkulackaVystup kalkulackaVystup;
            kalkulackaVystup = new KalkulackaVystup();
            System.out.println(kalkulackaVystup.Vystup(vysledok[0],vysledok[1], (int) vysledok[2]));
            // Pokracovanie v kalkulacke
            System.out.println("Přejete si zadat další příklad? [ano/ne]");
            pokracovat = sc.nextLine();
        }
        System.out.println("Děkuji za použití kalkulačky.");
    }
}

Vstup od uzivatela:

package onlineappobject;
import java.util.Scanner;
/**Trieda reprezentuje zadanie vstupnych hodnot a vyber operacie v kalkulacke */
public class KalkulackaVstup {
    /**
     * Vyziada zadanie vstupnych hodnot cisel pre vypocet a hodnotu pre pozadovanu operaciu
     * @param
     * @return      Zadane hodnoty 1,2 cisla a zvolenu operaciu
     */
    public float[] Vstup()
    {

        Scanner sc = new Scanner(System.in, "Windows-1250");
        System.out.println("Zadejte první číslo:");
        float a = Float.parseFloat(sc.nextLine());
        System.out.println("Zadejte druhé číslo:");
        float b = Float.parseFloat(sc.nextLine());
        int volba = 1;
        String pokracovat = "ano";
        while (pokracovat.equals("ano")) {
            System.out.println("Zvolte si operaci:");
            System.out.println("1 - sčítání");
            System.out.println("2 - odčítání");
            System.out.println("3 - násobení");
            System.out.println("4 - dělení");
            volba = Integer.parseInt(sc.nextLine());
            if ((volba > 0) && (volba < 5)) {
                pokracovat = "nie";
            } else {
                System.out.println("Neplatná volba, opakujte znova");
            }
        }
        return new float[]{a,b,volba};
    }
}

Vystupy:

package onlineappobject;
/**Trieda reprezentuje vypocet vyslednej hodnoty v kalkulacke */
public class KalkulackaVystup {
    /**
     * Vykona vypocet pozadovanej operacie
     * @param  a,b,volba  1 a 2 cislo, cislo zvolenej operacie
     * @return      vysledok vypoctu.
     */
    public float Vystup(float a,float b,int volba)
    {
        float vysledok = 0;
        switch (volba)
        {
            case 1:
                vysledok =  a + b;
                break;
            case 2:
                vysledok = a - b;
                break;
            case 3:
                vysledok = a * b;
                break;
            case 4:
                vysledok = a / b;
                break;
        }
        return vysledok;
    }
}

Mozte sa na to prosim niekto pozriet, co by slo vylepsit?

 
Odpovědět
28.5.2021 15:35
Avatar
Alesh
Tvůrce
Avatar
Odpovídá na František Chromý
Alesh:28.5.2021 17:50

Zbytečně to komplikuješ, je to takové "přeobjektované", na co objekt Vstup a Výstup. Prostě Vyžiješ s objektem Kalkulačka. Ten vytvoříš a s ním pak komunikuješ. Pošleš mu 3 vstupy, ten je nějak uchopí a podle toho vrací výstup. Vše je zapouzdřeno uvnitř kalkulačky.

 
Odpovědět
28.5.2021 17:50
Avatar
Odpovídá na Alesh
František Chromý:30.5.2021 12:54

Ďakujem za "nakopnutie" spravnym smerom.

 
Odpovědět
30.5.2021 12:54
Avatar
Robert Vyskup:11.8.2021 23:46

Tak nevím, ale jakým tlačítkem mám potvrdit při analýze Javadoc, když jsem zašktnul už všechny políčka? Je tam zelený refresh, pak šipky previous nebo next problem, a pak fix selected.

 
Odpovědět
11.8.2021 23:46
Avatar
Robert Vyskup:12.8.2021 11:56

A co značí @param

 
Odpovědět
12.8.2021 11:56
Avatar
Alesh
Tvůrce
Avatar
Odpovídá na Robert Vyskup
Alesh:12.8.2021 14:09

Za tímto klíčovým slovem je napsán název atributu. Díky tomu se ti to pak zobrazuje jako nápověda, viz obrázek v této lekci.

 
Odpovědět
12.8.2021 14:09
Avatar
ing. SARNOVSKÝ Petr:4.11.2021 5:13

Ahoj,
nemohu se prokousat přes první příklad. Prosím o radu a přikládám obrázek.
Děkuji

 
Odpovědět
4.11.2021 5:13
Avatar
Odpovídá na ing. SARNOVSKÝ Petr
ing. SARNOVSKÝ Petr:4.11.2021 21:53

Nechápu. na nic jsem nešahal dal znovu "RUN" a prošlo to. Ty počítače jsou horší jak ženy ;-)

 
Odpovědět
4.11.2021 21:53
Avatar
Tomáš Donát:23.11.2021 18:28

Ten, kdo to čte poprvé, je z toho magor.............

Odpovědět
23.11.2021 18:28
Zdá-li se Vám, že musíte ve svém životě něco změnit, tak se Vám to nezdá.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 196.