News

Kurs programowania w Javie

Część II: typy danych

Potrafimy napisać już pierwszy program w Javie. Czas na coś nieco bardziej zaawansowanego – coś, co przyniesie więcej satysfakcji. Dziś napiszemy program, który operować będzie na liczbach, bądź też, jakby to powiedział fachowiec, zmiennych. Zacznijmy jednak od podstaw.

Typy danych, operacje na zmiennych

W Javie znajdziemy dwie kategorie danych. Pierwsza, często nazywaną podstawową bądź pierwotną, zawiera w sobie literały liczbowe (liczby całkowite, rzeczywiste), znakowe oraz logiczne. Druga zawiera literały łańcuchowe, do niej zalicza się także obiekty.

Nazwa Deklaracja Przykład
Liczby całkowite int 51
Liczby rzeczywiste double 3.14
Znaki char ''d''
Prawda/Fałsz boolean false
Łańcuch String "Poradnik Java"

Przed napisaniem programu musimy pomyśleć, jakiego typu zmienne będziemy potrzebować. Oto jak deklarujemy je w programie:

int wiek;
double podatek;
char litera;
boolean zjadlJablko;
String imie;

W tej samej linii możemy podać również wartość zmiennej:

int wiek = 19;
double podatek = 24.5;
char litera = ''f'';
boolean zjadlJablko = true;
String imie = "Kuba";

W jednej linii możemy również deklarować zmienne tego samego typu na raz:

int x, y = 11, z = 14; 

W niektórych programach używamy zmiennych, których wartości nie mogą się zmienić. Weźmy na przykład liczbę pi, wynosi ona w przybliżeniu 3,14 – jest to liczba stała. Jeżeli chcielibyśmy zadeklarować taką liczbę w Javie używamy słowa „final”.

final double liczbaPi= 3.14;

Każda próba zmiany wartości takiej zmiennej zakończy się wyświetleniem błędu.

Zwracajcie uwagę na to, jak nazywacie zmienne. Przy zaawansowanych programach może być ich naprawdę dużo; gdy nazwa zmiennej nie mówi sama za siebie, będziemy mieli problemem z jej późniejszym zidentyfikowaniem. Nazwy zaczynamy od małej litery, jeżeli składają się one z kilku słów to każde kolejne zaczynamy z litery dużej (tak jak zjadlJablko). Oczywiście nie jest to reguła, acz jedynie przyjęta konwencja.

Operacje arytmetyczne

W Javie, tak samo jak w algebrze, na zmiennych wykonywać możemy operacje arytmetyczne. Mnożenie i dzielenie wykonywane jest przed dodawaniem i odejmowaniem, operatory o tym samym priorytecie wykonywane są od lewej do prawej itd.

Działanie Operator Priorytet
Nawias () 1
Dodawanie + 2
Odejmowanie - 2
Mnożenie * 3
Dzielenie / 3
Współczynnik % 4
Znak równania = 5

Kilka spraw dotyczących operatorów wymaga wyjaśnienia:

Działanie jabłko = gruszka sprawi, że zmienna jabłko zmieni wartość na tę reprezentowaną przez zmienną gruszka, a nie odwrotnie.

5.0 / 2.0 (liczby rzeczywiste, double) = 2,5
5 / 2 (liczby całkowite, int) = 2 (wartość po przecinku zostaje zignorowana)

Nieznane jest Wam też pewnie działanie znaku %. Operator % daje nam resztę z dzielenia dwóch liczb.

9 % 5 = 4
9,2 % 5,1 = 4,2

Z takim zasobem informacji możemy brać się za napisanie programu. Jako przykład wybrałem program, który poprosi użytkownika o podanie promienia koła i obliczy jego pole oraz obwód.

W powyższym kodzie niezrozumiałe są dla Was zapewne 3 linie kodu, z którymi nie spotkaliście się w poprzednim wspólnie napisanym programie Witaj Świecie.

Zacznijmy od samej góry.

import TerminalIO.KeyboardReader;

Pierwsza linia kodu odpowiada za import klasy KeyboardReader, która potrafi sczytywać to co napisze użytkownik. Wyrażenie import... mówi kompilatorowi, gdzie znaleźć kompletną specyfikację importowanej klasy. Aby program działał poprawnie, klasę TerminalIO możecie ściągnąć z naszego serwera stąd. Plik TerminalIO.jar wrzućcie do katalogu C:\\j2sdk1.4.1_01\\jre\\lib\\ext\\.

KeyboardReader reader = new KeyboardReader();

W tym wyrażeniu tworzymy nowy obiekt o typie KeyboardReader. Nazywamy go reader (imię powinno zawsze sugerować jaką czynność wykonuje dany obiekt). Wszystkie obiekty deklarujemy w ten sposób: = new ();

promien = reader.readDouble();

W tej linii kodu stworzony przez nas wcześniej obiekt reader odpowiada na polecenie readInt. Obiekt czeka, aż użytkownik wpiszę liczbę i wciśnie Enter, następnie przejmuje, lub inaczej mówiąc sczytuje, to co napisał użytkownik i oddaje wartość dla programu. Następnie wartość ta przypisywana jest dla zmiennej znajdującej się po lewej stronie znaku równości. Pamiętajcie, że polecenie readInt przejmuje jedynie liczby całkowite wpisane przez użytkownika. Zmienna, dla której przypisujemy liczbę, musi także być wcześniej zadeklarowana jak int (integer). Analogicznie polecenia readDouble, readChar, readLine, readBoolean pracują odpowiednio z danymi typu double, char, String i boolean.

W ramach treningu napisz podobny program, który obliczy pole trapezu.

Zgłoś błąd