Typy zmiennych w Java
edytor kodu przykładowy
Co to jest zmienna
Zmienna to nazwana lokalizacja w pamięci komputera. Literał to wartość zapisana w kodzie programu.
Zasady deklaracji zmiennych
Oto reguły, których należy przestrzegać w nazwach wszystkich identyfikatorów:
Tabela 2.4. Przykładowe nazwy zmiennych
Nazwa zmiennej | Dozwolona czy niedozwolona? |
dzienTygodnia | Dozwolona |
3dWykres | Niedozwolona, ponieważ identyfikatory nie mogą rozpoczynać się cyfrą |
czerwiec1997 | Dozwolona. |
mieszanka#3 | Niedozwolona, ponieważ w identyfikatorach można stosować tylko litery, cyfry, podkreślenia i symbol dolara. |
dzien tygodnia | Niedozwolona, ponieważ identyfikatory nie mogą obejmować spacji. |
Proste typy danych
Proste liczbowe typy danych
Typ danych | Rozmiar | Zakres |
byte | 1 bajt | Liczby całkowite z przedziału od –128 do +127 |
short | 2 bajty | Liczby całkowite z przedziału od –32 768 do +32 767 |
int | 4 bajty | Liczby całkowite z przedziału od –2 147 483 648 do +2 147 483 647 |
long | 8 bajtów | Liczby całkowite z przedziału od – 9 223 372 036 854 775 808 do +9 223 372 036 854 775 807 |
float | 4 bajty | Liczby zmiennoprzecinkowe od ±3,4 × 10–38 do ±3,4 × 1038; precyzja na poziomie 7 cyfr |
double | 8 bajtów | Liczby zmiennoprzecinkowe od ±1,7 × 10–308 do ±1,7 × 10308; precyzja na poziomie 15 cyfr |
byte inches;
int speed;
short month;
float salesCommission;
double distance;
UWAGA: Te typy danych są nazywane „prostymi”, ponieważ nie można ich używać do tworzenia obiektów. W rozdziale 1., w omówieniu programowania obiektowego wyjaśniono, że obiekty mają atrybuty i metody. Za pomocą prostych typów danych można jedynie tworzyć zmienne, a w zmiennej można zapisać tylko jedną wartość. Takie zmienne nie mają atrybutów ani metod. |
Typ danych boolean
Typ danych boolean umożliwia tworzenie zmiennych, które mogą przyjmować jedną z dwóch wartości: true lub false.
public class Main { public static void main(String[] args) { boolean bool; bool = true; System.out.println(bool); bool = false; System.out.println(bool); } }
true false |
Typ danych char
Typ danych char służy do przechowywania znaków. Zmienna typu char może zawierać tylko jeden znak. Literały znakowe są umieszczane w apostrofach
public class Main { public static void main(String[] args) { char znak = 'A'; char znak1 =261; System.out.println("znak = " + znak ); System.out.println("znak1 = " + znak1 ); } }Wynik programu:
znak = A znak1 = ą |
Notacja naukowa i notacja E
Literały zmiennoprzecinkowe można reprezentować za pomocą notacji naukowej. Przyjrzyj się np. liczbie 47 281,97. W notacji naukowej jej zapis to 4,728197 × 104 (104 jest równe 10 000, a 4,728197 × 10 000 to 47 281,97). W Javie do reprezentowania wartości w notacji naukowej używana jest notacja E. W tej notacji liczba 4,728197 × 104 jest zapisywana jako 4,728197E4. W tabeli 2.6 pokazano inne liczby reprezentowane w notacjach naukowej i E.
Popraw błędy
Ten program nie skompiluje się, ponieważ wymieszano w nim wiersze.
System.out.print("Sukces\n"); } public class Success { System.out.print("Sukces\n"); public static void main(String[] args) System.out.print("Sukces "); } // To naprawdę szalony program. System.out.println("\nSukces"); { |
Po poprawnym uporządkowaniu wierszy program powinien wyświetlić na ekranie następujące informacje: Dane wyjściowe programu
Sukces Sukces Sukces Sukces
Uporządkuj wiersze we właściwej kolejności. Przetestuj program. W tym celu zapisz go w komputerze, skompiluj i uruchom.
Analiza kodu
Przeanalizuj poniższy program i określ, co wyświetli na ekranie.
// Dzieła Wolfganga. public class Wolfgang { public static void main(String[] args) { System.out.print("Dzieła Wolfganga\nobejmują "); System.out.print("następujące utwory:"); System.out.print("\nMarsz turecki "); System.out.print("i Symfonię nr 40 "); System.out.println("g-moll."); } }
Napisz program ...
Napisz na kartce program, który wyświetli w pierwszym wierszu Twoje imię i nazwisko, w drugim — ulicę oraz numer domu i mieszkania, w trzecim — nazwę miasta i kod pocztowy, a w czwartym — numer telefonu. Na początku programu umieść komentarz z dzisiejszą datą. Przetestuj program; w tym celu wpisz go, skompiluj i uruchom.
Karta pracy
Pytania kontrolne
2.12 Które z poniższych nazw zmiennych są niedozwolone i dlaczego?
x
99bottles
july97
theSalesFigureForFiscalYear98
r&d
grade_report
2.13. Czy nazwa zmiennej Sales jest identyczna z nazwą sales? Dlaczego?
2.14. W tym zadaniu posłuż się tabelą z prostymi typami danych Javy.
a) Jeśli zmienna przechowuje liczby całkowite z przedziału od 32 do 6000,
to jaki prosty typ danych będzie dla niej najlepszy?
b) Jeśli zmienna przechowuje liczby całkowite z przedziału od –40 000
do 40 000, to jaki prosty typ danych będzie dla niej najlepszy?
c) Który z następujących literałów zajmuje więcej pamięci: 22.1 czy 22.1F?
2.15. Jak liczba 6,31 × 1017 będzie reprezentowana w notacji E?
2.16. W programie zadeklarowana jest zmienna number typu float. Poniższa instrukcja powoduje błąd. Jak go naprawić? number = 7.4;
2.17. Jakie wartości można przechowywać w zmiennych typu boolean?
2.18. Napisz instrukcje wykonujące następujące operacje:
a) deklarowanie zmiennej letter typu char,
b) przypisywanie litery A do zmiennej letter,
c) wyświetlanie zawartości zmiennej letter.
2.19. Jakie są kody Unicode znaków 'C', 'F' i 'W'? Możliwe, że będziesz musiał poszukać tych informacji w internecie.
2.20. Który zapis przedstawia literał znakowy: 'B' czy "B"?
2.21. Jaki błąd znajduje się w następującej instrukcji? char letter = "Z";
Podsumowanie
Rozwiązania do ćwiczeń z tej strony
2.12. Nazwa 99bottles jest niedozwolona, ponieważ rozpoczyna się od cyfry. Nazwa r&d jest błędna, ponieważ znak & jest niedozwolony.
2.13. Te nazwy nie są identyczne, ponieważ jedna rozpoczyna się wielką literą S, natomiast
druga — małą literą s. Wielkość znaków w nazwach zmiennych jest istotna.
2.14. a) short
b) int
c) 22.1, ponieważ jest przechowywany za pomocą typu double.
2.15. 6.31E17
2.16. Należy dodać F do literału liczbowego; oto przykład:
number = 7.4F;
2.17. true i false.
2.18. a) char letter;
b) letter = 'A';
c) System.out.println(letter);.
2.19. Kod litery „C” to 67, kod litery „F” to 70, a kod litery „W” to 87.
2.20. 'B' to literał znakowy.
2.21. Nie można przypisać literału tekstowego do zmiennej typu char. Należy zastosować instrukcję: char letter = 'Z';