Typy zmiennych w Java


Zagadnienia
  • Pojęcie zmiennej
  • Typy zmiennych
  • Przydatne narzędzia/oprogramowanie

  • Pakiet NetBeans

  • 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:

  • Pierwszym znakiem musi być jedna z liter a – z lub A – Z, podkreślenie (_) lub symbol dolara ($).
  • Po pierwszym znaku można posługiwać się literami a – z lub A – Z, cyframi 0 – 9, podkreśleniami (_) i symbolem dolara ($).
  • Wielkie i małe litery są traktowane jako różne. To oznacza, że nazwa posortowaneElementy różni się od nazwy posortowaneelementy.
  • Identyfikatory nie mogą obejmować spacji.

    Tabela 2.4. Przykładowe nazwy zmiennych

    Nazwa zmiennej Dozwolona czy niedozwolona?
    dzienTygodniaDozwolona
    3dWykresNiedozwolona, ponieważ identyfikatory nie mogą rozpoczynać się cyfrą
    czerwiec1997Dozwolona.
    mieszanka#3 Niedozwolona, ponieważ w identyfikatorach można stosować tylko litery, cyfry, podkreślenia i symbol dolara.
    dzien tygodniaNiedozwolona, ponieważ identyfikatory nie mogą obejmować spacji.

    Proste typy danych

    Proste liczbowe typy danych

    Typ danychRozmiar Zakres
    byte1 bajtLiczby całkowite z przedziału od –128 do +127
    short2 bajtyLiczby całkowite z przedziału od –32 768 do +32 767
    int4 bajtyLiczby całkowite z przedziału od –2 147 483 648 do +2 147 483 647
    long8 bajtówLiczby całkowite z przedziału od – 9 223 372 036 854 775 808 do +9 223 372 036 854 775 807
    float4 bajtyLiczby zmiennoprzecinkowe od ±3,4 × 10–38 do ±3,4 × 1038; precyzja na poziomie 7 cyfr
    double8 bajtówLiczby zmiennoprzecinkowe od ±1,7 × 10–308 do ±1,7 × 10308; precyzja na poziomie 15 cyfr
    TypDanych to nazwa typu danych, a NazwaZmiennej to nazwa zmiennej. Oto kilka przykładowych deklaracji zmiennych:
    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







    Przykładowe rozwiązania oraz komentarze do wybranych ćwiczeń i zadań


  • 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';