Zanim przejdziemy do omówienia kolejnej linijki naszego pierwszego programu, mianowicie public static void main(String[] args)musimy wprowadzić pojęcie zmiennych w języku Java (java zmienne) oraz ich dwóch podstawowych typów.
UWAGA! Kurs darmowy, zaktualizowany na stan z roku 2020 dostępny na https://kursy.clockworkjava.pl/java-fundamenty-programowania/
Format wideo wpisu znajduję się na jego końcu.
Czym są zmienne
Każdy, nieważne jak skomplikowany program, sprowadza się do danych oraz różnorakich operacji na nich – od przekazywania do bazy danych, by je zapisać do wyświetania użytownikowi programu – czy to w postani tekstowej jak w naszym przykładzie, czy to w formie graficznej.
Do przechowywania danych w trakcie działania programu służy nam coś takiego jak zmienna (ang. variable).
Każdą zmienna określa jej nazwa ( np. „powitanie” ) oraz typ danych jakie przyjmuje – może to być między innymi tekst bądź liczba całkowita. Jak wszystko w programowaniu, zmienne zwykło nazywać się „z angielska”. W programie nie może być dwóch zmiennych o tej samej nazwie (konkretniej w jednym bloku kodu, ale o tym później). W języku Java zmienne definuje się w ten sposób:
String greeting = "Hello world"
Rozbijając te linijke na składowe:
Stringjest to nazwa typu danych, jaki nasza zmienna będzie przechowywać. String jest to nazwa dla typu tekstowego w Javie.greetingjest to nazwa jaką my nadaliśmy naszej zmiennej. Przyjeło się, że nazwy dla zmienny zaczynają się od małej litery, pisane są camelCase jeśli składają się z więcej niż jednego wyrazu. Cyfry są dozwolone – z reguły umieszcza się je na końcu nazwy.=jest to operator przypisania. Mówi on kompilatorowi tyle, że do tego co jest po lewej stronie (czyli zmiennej o nazwie greeting) przypisz to co jest po stronie prawej."Hello world"jest to wartość tekstowa. W Javie wartości tekstowe są umieszczane w pomiędzy „”.
Zatem powyższa linijkę można odczytać – Do zmiennej o nazwie greeting, która przechowywuję wartości tekstowe przypisz wartość „Hello world”.
Bardzo ważną rzeczą jest to, że zmienne trzymają dane tylko w trakcie działania programu i po jego zakończeniu ich wartości są tracone. By zachowywać dane pomiędzy uruchomieniami programu niezbędne jest ich zapisanie – czy to w postaci pliku na dysku, czy w bazie danych.
Komenda System.out.println("Hello world") wypisywała na terminalu Hello world. Gdy mamy zdefiniowaną zmienna greeting, w taki sposób jak wyżej, możemy napisać System.out.println(greeting) (bez „”) i efekt będzie taki sam. Dzieje się tak dlatego, że Java podstawiła pod zmienna greeting jej wartość, czyli tekst Hello World.
public class Hello {
public static void main(String[] args) {
String greeting = "Hello world";
System.out.println(greeting);
}
}
Typy Zmiennych
W języku Java mamy kilka typów zmiennych tak zwanych prymitywnych – m.in. int, long, byte, double, float. Pierwsze trzy odpowiadają za liczby całkowite (różnią się one tym jak duże liczby mogą przechowywać), a dwa ostatnie za zmiennoprzecinkowe. Z całego tego zestawienia narazie interesuje nas tylko najprostrzy z nich – int, który może przechowywać wartości od -2 147 483 648 do 2 147 483 647 (wystarczy, że zapamiętasz „od -2. miliardów z hakiem do +2.miliardów z hakiem o jeden mniejszym” 🙂 ) . Te zmienne możemy dodawać, mnożyć i tak dalej.
Typ String jest nieprymitywnym typem zmiennych – typy te są tworzone na podstawie klas (które wprowadziłem w tym wpisie). Dziesiątki takich typów dostarcza JDK (które instalowaliśmy na samym początku), w tym i String.
Dodajmy do naszego przykładowego projektu deklarację trzech dodatkowych zmiennych – jednej typu String i dwóch intów.
public class Hello {
public static void main(String[] args) {
String greeting = "Hello";
String name = "Paweł";
int a = 5;
int b = 2;
System.out.println(greeting);
}
}
Pierwsza rzecz – zwróc uwagę, że zmieniliśmy również wartość zmiennej greeting na samo „Hello”. Druga rzecz – pamiętaj, że String piszemy z wielkiej litery, natomiast nazwy primitywnych typów, jak int, z małej.
Operacje na zmiennych
Jak już napomknąłem na zmiennych możemy dokonywać różnych operacji.
Na int możemy wykonywać operację matematyczne – dodawanie, odejmowanie, zmiana znaki i tak dalej. Np.
public class Hello {
public static void main(String[] args) {
String greeting = "Hello";
String name = "Paweł";
int a = 5;
int b = 2;
System.out.println(a+b);
}
}
Program wypisze nam na standardowej wyjście wartość 7.
public class Hello {
public static void main(String[] args) {
String greeting = "Hello";
String name = "Paweł";
int a = 5;
int b = 2;
System.out.println(-b);
}
}
A w tym wypadku -2.
Wynik tych operacji możemy przypisać do innej zmiennej, w ten sposób:
int sum = a + b;
Teraz pod zmienną o nazwie sum mamy wartość, będącą sumą zmiennych a i b, czyli w naszym wypadku 7.
public class Hello {
public static void main(String[] args) {
String greeting = "Hello";
String name = "Paweł";
int a = 5;
int b = 2;
int sum = a + b;
System.out.println(sum);
}
}
Na typach nieprymitywnych nie możemy wykonywać operacji matematycznych, z jednym wyjątkiem – mianowicie możemy użyc znaku + by połączyć ze sobą dwa Stringi.
public class Hello {
public static void main(String[] args) {
String greeting = "Hello";
String name = "Paweł";
int a = 5;
int b = 2;
int sum = a + b;
System.out.println(sum);
System.out.println(greeting + name);
}
}
W wyniku tej operacji otrzymamy na konsoli napis „HelloPaweł”. Przydałaby się nam spacja, prawda?
public class Hello {
public static void main(String[] args) {
String greeting = "Hello";
String name = "Paweł";
int a = 5;
int b = 2;
int sum = a + b;
System.out.println(sum);
System.out.println(greeting + " " + name);
}
}
Teraz wygląda to lepiej.
Zadanie domowe:
- Sprawdź co zostanie wypisane na ekranie gdy zamiast
System.out.println(greeting)napiszemySystem.out.println("greeting") - Zmień wartość zmiennej
greetingz „Hello world” na „Witaj świecie”. - Utwórz dwie zmienne liczbowe –
cid, przypisz do nich wartości 5 oraz 3. Następnie utwórz zmiennamultii przypisz jako jej wartość wynik mnożenia zmiennychcid, a następnie wypisz ten wynik na terminal. - Utwórz dwie zmienne tekstowe –
introorazday, niech pierwsza z nich przechowuje wartość „Dziś jest” natomiast druga „Poniedziałek”. Wypisz na terminalu, z użyciem zmiennych, tekst „Dziś jest Poniedziałek”.
Słowniczek:
- Zmienna (variable, var) – twór programistyczny, służący do przechowywania danych w trakcie działania programu.
- String – typ zmiennych przechowywujący wartości tesktowe, muszą one znajdować się pomiędzy „”, na przykład „Tekst”.
- int – typ zmiennych przechowywujący wartości liczbowe całkowite z zakresu od-2 147 483 648 do 2 147 483 647.
Zapraszam do zadawania pytań, uwag i sugestii, są one zawsze mile widziane.