Pierwszą z takich rzeczy, podstawową i chyba najczęściej wykorzystywaną są zmienne. Pozwalają one na przechowywanie danych różnego typu. Wyróżniamy dwie fazy tworzenia zmiennej:
- Deklaracja – tutaj określamy typ i nazwę zmiennej
- Inicjalizacja – nadanie wartości zmiennej
Zobaczmy to na przykładzie.
1
2
3
4
5
6
7
8
|
public class Zmienne{ public static void main(String[] args){ int liczba; // Deklaracja liczba = 5 ; // Inicjalizacja } } |
Zaczynając od początku tworzymy klasę Zmienne (pamiętaj, aby zapisać plik jako Zmienne.java), a w niej tworzymy metodę main(). Dalej następuje zadeklarowanie zmiennej typu int i nazwie liczba(deklaracja), a w kolejnej linii nadajemy jej wartość 5(inicjalizacja). Oczywiście możemy dokonać dwie powyższe instrukcje w jednej linii:
1
2
3
4
5
|
public class Zmienne{ public static void main(String[] args){ char znak = 'A' ; } } |
W powyższym przykładzie stworzyliśmy zmienną znakową char o nazwie znak i od razu przypisaliśmy do niej znak A.
Schemat jest następujący:
1
|
typ nazwa_zmiennej = wartość; |
Możemy deklarować kilka zmiennych obok siebie, a także przypisywać już zainicjowanej zmiennej innym zmiennym, wszystko to ukazuje poniższy przykład.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class Hello{ public static void main(String[] args){ int liczba1 = 5 ; int liczba2 = liczba1; System.out.println(liczba1+liczba2); double liczba3, liczba4; liczba3 = 5.0 ; liczba4 = 3.3 ; System.out.println(liczba3); System.out.println(liczba4); } } |
Ważne jest to, że operacja liczba2=liczba1, jest jednorazowa. Jeśli zmienimy wartość zmiennej liczba1, to liczba2 nie zmieni swojej wartości.
Czas więc napisać coś użytecznego, będzie to program dodający 2 liczby całkowite.
1
2
3
4
5
6
7
|
public class Kalkulator{ public static void main(String[] args){ int a= 5 ; int b= 3 ; System.out.println( "a+b = " +(a+b)); } } |
Deklarujemy i nadajemy wartość dwóm zmiennym całkowitym a i b, a następnie wyświetlamy wynik tego działania. Zwróć uwagę jak tym razem działa operator +, tekst umieszczony w cudzysłowach jest wyświetlany w normalnej formie natomiast wynik jako suma dwóch liczb. Jest to spowodowane tym, że plus służy do konkatenacji(łączenia) stringów.
Przy okazji zmiennych warto także wspomnieć o ich prawie przeciwieństwach, czyli stałych. Różni je słowo kluczowe final umieszczane przed typem zmiennej. Zadeklarowana w ten sposób zmienna może być tylko raz, w dowolnym miejscu, zainicjowana. Późniejsza próba przypisania jej nowej wartości zakończy się błędem i program nawet (na szczęście) nie przejdzie kompilacji.
1
2
3
4
5
6
7
8
|
public class Stale{ public static void main(String[] args){ final double LICZBA_PI= 3.14 ; final int STALA2; LICZBA_PI= 8 ; //błąd, zmienna była zainicjowana STALA2= 3 ; // tak można zrobić - pierwsze przypisanie } } |
Konwencja nazewnictwa Javy mówi o tym, aby używać przy nich wyłącznie wielkich liter i cyfr, a kolejne słowa oddzielać znakami podkreślenia.
Łańcuchy znaków deklarujemy tak jak inne zmienne, lub stałe, podając najpierw typ String (z dużej litery), a inicjacji możemy dokonać podając jakiś tekst między znakami cudzysłowów.
Istotną rzeczą jest to, że Stringów nie da się bezpośrednio modyfikować. Na szczęście da się to na kilka sposobów ominąć. Jak już wspominaliśmy na łańcuchach możemy dokonywać łączenia, czyli konkatenacji przy użyciu operatora +.
1
2
3
4
5
6
7
8
9
10
11
|
public class Test{ public static void main(String[] args){ String hello = "Witaj " ; String world = "Świecie!" ; String powitanie = hello+world; //łączenie Stringów System.out.println(powitanie); String czesc = powitanie.substring( 0 , 6 )+ "uczniu" ; System.out.println(czesc); } } |
W powyższym przykładzie zapewne zaskoczeniem dla was jest metoda substring(). Po działaniu programu łatwo się domyślić jakie jest jej działanie. Mianowicie zwraca ona „pod string” zaczynając od indeksu podanego jako pierwszy parametr (u nas 0) i kończąc przed indeksem podanym jako drugi parametr -1. W Javie wszystko numeruje się od zera, co czasami bywa kłopotliwe, ale nam to na razie nie będzie przeszkadzało.