NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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
Robert Michalovič:4.3.2018 6:09

2MiroslavP : "class Program is public, should be declarated in a file named Program.java"

  • to není potřeba chápat ale hlavně zapamatovat. Každá public class musí být ve vlastním souboru, který se jmenuje jako ta class.

např. public class Auto musí být v souboru Auto.java
např. public class Hvezda musí být v souboru Hvezda.java

pokud se jedná o tvz. nepublic class pak ta může být kdekoliv ( jako vnitřní, anonymní, případně vnější třída,atd.. )
např. public class Hudba bude v souboru Hudba.java + bude v sobě mít ještě vnitřní class Disco, class Classica

// soubor Hudba.java
public class Hudba {
        ....
        class Disco {
        ....
        }
        class Classica {
        ....
        }
}

nebo

např. public class Hudba bude v souboru Hudba.java + součástí souboru Hudba.java budou ještě vnější třídy: class Disco, class Classica

// soubor Hudba.java
class Disco {
        ....
}
class Classica {
        ....
}
public class Hudba  {
        ....
}

Těd si to jenom zapamatuj a na praktické využití přijdeš časem.

Editováno 4.3.2018 6:11
 
Odpovědět
4.3.2018 6:09
Avatar
Libor Šimo (libcosenior):28.9.2018 13:10

Ahoj, toto je v článku:
"Podíváme se, že nám NetBeans opravdu popisky zobrazí:"

Asi nemám niečo správne nastavené. Mne sa popis nezobrazuje.
Poradte prosím.

Odpovědět
28.9.2018 13:10
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
ostrozan
Tvůrce
Avatar
Odpovídá na Libor Šimo (libcosenior)
ostrozan:30.9.2018 18:04

O tři řádky výš se píše , že to nejdřív musíš nastavit v Tools -> Analyze Javadoc

 
Odpovědět
30.9.2018 18:04
Avatar
Odpovídá na ostrozan
Libor Šimo (libcosenior):30.9.2018 19:03

To si vážne myslíš, že som to nespravil?
Už ale viem ako to funguje.
Nie ukázať na metódu myšou, ale napísať názov inštancie, dať botku a vtedy sa zobrazí. Proste v článku je zavádzajúca informácia.

Odpovědět
30.9.2018 19:03
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Odpovídá na Libor Šimo (libcosenior)
Ondřej Bartík:8.11.2018 9:36

Sice je to trochu pozdě, ale stačí kliknout na to jednotlivé slovo, nebo prakticky jakoukoli část kódu a stisknout CTRL + Mezerník.
Pak NetBeans vyhodí nápovědu, ve které je i dokumentace, pokud je dostupná. Super je to na integrované metody, kde je ta dokumentace dobře zpracovaná.

 
Odpovědět
8.11.2018 9:36
Avatar
Karel Klíč
Člen
Avatar
Karel Klíč:15.12.2018 19:19

Divím se co jsem tu psal teď je mi jasné že každá třída class je jeden soubor tedy komponenta která obsahuje metody, teď už mi došlo, že co soubor tedy class respektive .java je tou výhodou a komponentou celého objektově orientovaného programování. To je přesně to paradigma.

 
Odpovědět
15.12.2018 19:19
Avatar
Tomas Gorcos
Člen
Avatar
Tomas Gorcos:12.2.2019 13:47

Dobrý deň. Chcem sa opýtať, kde by som našiel bližšie špecifikacie pre printf a všetky tie symboli, cisla a pismena. Ako a kde sa používajú?

 
Odpovědět
12.2.2019 13:47
Avatar
Odpovědět
12.2.2019 13:48
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
Alesh
Tvůrce
Avatar
Alesh:19.3.2019 20:41

Mohl by mi někdo zkušený říct, jestli jsem se správně zhostil úkolu předělání kalkulačky do objektové varianty? Jakékoli konstruktivní připomínky vítány! ;-)

Pozn.: zaokrouhlovací chybu u floatu neřeším, zrovna tak jsem si odpustil ten cyklus na opětovné použití kalkulačky.

Jde mi čistě o tu "konstrukci", kde použít objekt a kde to nechat v rovině strukturovaného programování. A jestli to, jak jsem to napsal, vypadá jako kdyby to psal opravdový programátor. :-)

main:

package kalkulackaobject;

/**
 *
 * @author Aleš Bláha
 */
public class KalkulackaObject {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // inicializace kalkulacky
        Kalkulacka kalkulacka = new Kalkulacka();

        //uvitaci hlaska
        kalkulacka.vypisUvitani();

        do{
            kalkulacka.vypisVyzvuKZadaniHodnotyDoKonzole(1);
        }while(!kalkulacka.NactiAOtestujZadanouHodnotuZKonzole(1));

        do{
            kalkulacka.vypisVyzvuKZadaniHodnotyDoKonzole(2);
        }while(!kalkulacka.NactiAOtestujZadanouHodnotuZKonzole(2));

        do{
            kalkulacka.vypisVyzvuKZadaniOperatoraDoKonzole();
        }while(!kalkulacka.NactiAOtestujZadanehoOperatoraZKonzole());

        kalkulacka.VypoctiAVypisVysledekDoKonzole();

        //podekovani za pouziti
        kalkulacka.vypisPodekovani();
    }

}

kalkulačka:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package kalkulackaobject;

import java.util.Scanner;

/**
 * trida Kalkulacka
 * @author Aleš Bláha
 */
public class Kalkulacka {
    /** prvni zadavane cislo */
    private float cislo1;

    /** druhe zadavane cislo */
    private float cislo2;

    /** symbol operace (+, -, *, /) */
    private Character operace;

    /** vypise uvitaci hlasku */
    public void vypisUvitani(){
        System.out.println("Vítejte v programu Kalkulačka!");
    }

    /** vypise dekovaci hlasku */
    public void vypisPodekovani(){
        System.out.println("Děkuji za použití kalkulačky.");
    }

    /**
     * vypise hlasku pro vlozeni prvni nebo druhe hodnoty
     * @param poradiHodnoty 1. nebo 2. zadavana hodnota (vlozit lze pouze 1 nebo 2)
     */
    public void vypisVyzvuKZadaniHodnotyDoKonzole(int poradiHodnoty){
        System.out.printf("Zadej %d. číslo: ", poradiHodnoty);
    }

    /**
     * z konzole nacte prvni nebo druhou vstupni hodnotu, ulozi do prislusne promenne
     * @param poradiHodnoty 1. nebo 2. zadavana hodnota (vlozit lze pouze 1 nebo 2)
     * @return info je hodnota v poradku
     */
    public boolean NactiAOtestujZadanouHodnotuZKonzole(int poradiHodnoty){
        try{
            Scanner sc = new Scanner(System.in, "Windows-1250");
            switch (poradiHodnoty) {
                case 1:
                    cislo1 = Float.parseFloat(sc.nextLine());
                    return true;
                case 2:
                    cislo2 = Float.parseFloat(sc.nextLine());
                    return true;
                default:
                    return false;
            }
        }
        catch(Exception e){
            return false;
        }
    }

    /** vypise hlasku pro vlozeni operatora (+, -, *, /) */
    public void vypisVyzvuKZadaniOperatoraDoKonzole(){
        System.out.print("Zadej operátora (+, -, *, /): ");
    }

    /**
     * z konzole nacte operatora (povolene operatory: +, -, *, /), ulozi do prislusne promenne
     * @return info je operator v poradku
     */
    public boolean NactiAOtestujZadanehoOperatoraZKonzole(){
        try{
            Scanner sc = new Scanner(System.in, "Windows-1250");
            operace = sc.nextLine().charAt(0);
            switch (operace) {
                case '+':
                case '-':
                case '*':
                case '/':
                    return true;
                default:
                    return false;
            }
        }
        catch(Exception e){
            return false;
        }
    }

    /**
     * vypocte a vypise vysledek do konzole
     */
    public void VypoctiAVypisVysledekDoKonzole(){
        float vysledek = 0;
        switch(operace){
            case '+':
                 vysledek = cislo1 + cislo2;
                 break;
            case '-':
                vysledek = cislo1 - cislo2;
                break;
            case '*':
                vysledek = cislo1 * cislo2;
                break;
            case '/':
                vysledek = (float) cislo1 / cislo2;
                break;
        }
        System.out.printf("%f %c %f = %f\n", cislo1, operace, cislo2, vysledek);
    }
}
 
Odpovědět
19.3.2019 20:41
Avatar
Wopat
Člen
Avatar
Wopat:5.4.2019 17:19

V lekci je uvedeno, že při vytvoření nové třídy NetBeans automaticky vygeneruje následující kód:

package helloobjects;

public class Zdravic {

}

U mě je však třída úplně prázdná. Zkoušel jsem hledat v nastavení IDE i na internetu, ale bohužel bez úspěchu. Nevíte někdo, kde je problém, prosím?

Odpovědět
5.4.2019 17:19
The difficult we do immediately. The impossible takes a little longer.
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 195.