• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Do czego służy w tym przykładzie zmienna boolean?

Object Storage Arubacloud
0 głosów
714 wizyt
pytanie zadane 19 lipca 2018 w Java przez zuzanka123 Nowicjusz (120 p.)

Przerabiam sobie książkę "Java - rusz głową" i tam jest taki przykład:

class Perkusja {
 
    boolean talerze = true;
    boolean beben = true;
 
    void zagrajNaBebnie() {
        System.out.println("bam, bam, baaaa-am-am");
    }
 
    void zagrajNaTalerzach() {
        System.out.println("brzdk, brzrzrzdk");
    }
}
 
class PerkusjaTester {
    public static void main(String[] args) {
 
        Perkusja p = new Perkusja();
        p.zagrajNaBebnie();
        p.beben = false;
        p.zagrajNaTalerzach();
 
        if (p.beben == true) {
            p.zagrajNaBebnie();
        }
    }
}

Tak więc: do czego w ogóle służą mi tutaj zmienne boolean? Dlaczego nie mogę wpisać po prostu "p.zagrajNaBebnie();" i "p.zagrajNaTalerzach();"? Zastanawia mnie to tym bardziej, że instrukcja if pojawia się tylko dla bębna. Co stałoby się, gdyby między wywołaniem metod "zagraj" nie byłoby tego "p.beben = false"? Czy program "grałby" wtedy na bębnie przez cały czas? A dlaczego nie ma analogicznego "p.talerze = false"? I - swoją drogą - dlaczego instrukcja if pojawia się dopiero po wywołaniu jednej i drugiej metody? (To ostatnie pytanie wynika już pewnie z mojej skrajnej ignorancji w kwestii składni, ale zadaję je, żeby już wszystko było do kompletu...)

Swoją drogą - na githubie znalazłam taką czyjąś wersję, gdzie między wywołaniem metod NIE MA "p.beben = false", ale wciąż pojawia się deklaracja zmiennych boolean:

https://github.com/miguelalba-old/Head-First-Java/blob/master/ch2/DrumKitTestDrive.java

1 odpowiedź

+2 głosów
odpowiedź 19 lipca 2018 przez Tomasz Rogalski Bywalec (2,800 p.)
boolean talerze = true;  nie ma znaczenia w tym przykładzie bo jej nie uzywamy.

boolean beben = true; autor chce Ci pokazać działanie IF dlatego zmienia jej wartość na false co pokazuje że druga gra na bębnie się nie wykona.

Możesz uzyć p.zagrajNaBebnie();  ale jeżeli boolean beben symbolizuje sprawność bębna to zagrałbyś na niesprawnym bębnie

Co stałoby się, gdyby między wywołaniem metod "zagraj" nie byłoby tego "p.beben = false"? Czy program "grałby" wtedy na bębnie przez cały czas? - NIE, wykonałoby się raz to co masz w IF.

A dlaczego nie ma analogicznego "p.talerze = false"?  - Może będzie dalej w książce? Jeżeli nie ma to bezsensu:)

dlaczego instrukcja if pojawia się dopiero po wywołaniu jednej i drugiej metody?  - Nie ma znaczenia, autor tak po prostu wymyślił.

Podobne pytania

0 głosów
3 odpowiedzi 343 wizyt
pytanie zadane 1 stycznia 2020 w C i C++ przez Szymczak_7 Obywatel (1,860 p.)
–6 głosów
2 odpowiedzi 554 wizyt
pytanie zadane 4 maja 2018 w C i C++ przez Michal Cpp Nowicjusz (130 p.)

92,579 zapytań

141,432 odpowiedzi

319,660 komentarzy

61,963 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...