Luty 16, 2018

Zmienne i typy danych w Java

Typy danych, zmienne i komentarze w Javie

W tym wpisie dowiesz się o istniejących typach danych w Javie, nauczysz się deklarować zmienne przy użyciu wiedzy na temat typów danych. Poznasz różnicę między typem całkowitym, a zmiennoprzecinkowym oraz nauczysz się korzystać z komentarzy w javie.

 

Zmienne

Na początku będziemy musieli zrozumieć czym tak naprawdę jest zmienna w programowaniu. Nie jest to raczej trudne zagadnienie, wręcz można powiedzieć, że podstawowe i najcześciej wykorzystywane.

Deklarując zmienną (rezerwując na nią pamięć) rezerwujemy sobie kontener o danym typie. Typy w Javie są zmiennoprzecinkowe, całkowite lub zmienna znakowa. Więc na początku musimy zdecydować jakiego typu danych będziemy potrzebować.

Przypuśćmy, że chcemy zapisać w programie nasz numer pesel, a później go wyświetlić, jaki więc typ danych musimy wykorzystać? No pesel jest oczywiście typem całkowitym, dlatego będziemy musieli wykorzystać do tego przeznaczony typ, więc nasza deklaracja będzie wyglądać w taki sposób:

typ_całkowity pesel = 97010101456;

Za chwilę przedstawię Ci typy danych jakie można wykorzystać jednak na początku przyjrzmy się samej deklaracji zmiennej. Zarezerwowaliśmy sobie miejsce w pamięci komputera na zmienną o nazwie pesel, która będzie typem całkowitym, a jej wartość to 97010101456. Można wyobrazić sobie, że mamy szafę z bardzo dużą ilością szufladek, którą udostępnia nam komputer. Mówimy, więc mu: Ej komputer, znajdź mi szufladkę na typ całkowity, nazwij ją pesel i wrzuć tam liczbę 97010101456I hop, robi to dla nas.

Gdy już wiemy czym są zmienne, możemy przejść dalej czyli do typów danych.

Typy danych Java

No to czas na typy danych, będą one nam potrzebne, aby zadeklarować jakąś zmienną, na której później będziemy operować. Typ danych mówi nam o tym, jaki typ przechowuje nasza zmienna. Typami podstawowymi są: byte, short, int, long, float, double, char oraz boolean.

byte

Jest najmniejszym typem całkowitym, tzn. 1 bajtowym. Oznacza to, że może on przechowywać liczby całkowite z przedziału 〈-128;127〉. Deklarujemy go i inicjalizujemy w następujący sposób:

byte x = 10;

Ten zapis informuje, że zmienna x jest typu byte i przypisana jest do niej wartość 10.

short

Short jest typem danych do przechowywania zmiennej całkowitej w Javie. Ze względu, że jest 2 bajtowy może przechowywać liczby z przedziału 〈-32 768; 32 767〉. Deklaracja dużo się nie różni od byte.

short x = 15;

Tym razem do zmiennej x, która jest typu short przypisaliśmy liczbę 15.

int

Jeżeli programowałeś już wcześniej w C++ to z pewnością był to typ całkowity najczęściej używany podczas programowania. Jest on typem 4 bajtowym, czyli mieszczą się w nim liczby z przedziału 〈-2 147 483 648; 2 147 483 647〉. No to musisz przyznać, że mieszczą się w nim spore liczby, jednak czasami int nie wystarcza.

int x = 25;

Do zmiennej typu int tym razem przypisaliśmy liczbę 25.

long

Największy prymitywny typ całkowity, jest aż 8 bajtowy. No to w takim razie może przechowywać liczby z przedziału: 〈-9,223372037×10¹⁸ ; 9,223372037×10¹⁸ -1〉. No to już tym razem mamy naprawdę spore liczby.

long x = 10l;

Tym razem do zmiennej x typu long  przypisaliśmy liczbę 10. Jak widzisz na końcu jest dopisana litera L (mała lub duża), która wskazuje kompilatorowi, że przypisujemy liczbę long.

float

Float jest 4 bajtowym typem zmiennoprzecinkowym, tzn. że przechowuje liczby z przecinkiem. Proste – prawda?;) Skoro jest 4 bajtowy może on przechowywać liczby z precyzją do 6-7 liczb po przecinku.

float pi = 3.14f;

Tym razem do zmiennej pi, która jest typu float przypisaliśmy 3.14. Jak widzisz na końcu musi się pojawić liczba f lub F.

double

Double jest 8 bajtowym typem zmiennoprzecinkowym. Oczywiście dzięki temu ma zwiększoną precyzję względem typu float. Ma więc on precyzję do około 15 liczb po przecinku.

double x = 10.5d;

W przypadku double wszystko wygląda tak samo, oprócz litery lub występującej po liczbie.

char

Char jest typem, który reprezentuje znak. Niestety można przypisać do niego tylko jeden znak, co jest mało praktyczne. Dlatego stosuje się później typ String, który jednak już nie jest typem podstawowym dlatego opiszę go w innym wpisie. Znak będziemy deklarować w następujący sposób:

char znak = 'B';

No i o to w ten sposób do zmiennej znak przypisaliśmy literę B.

boolean

Boolean jest specyficznem typem, jest to typ, który przyjmuje tylko dwa stany: prawda lub fałsz. Bardzo łatwy w użyciu i bardzo użyteczny podczas programowania.

boolean male = true;

Wykorzystanie

No to już trochę mamy wiedzy teoretycznej czas ją trochę wyświetlić na nasz ekran. Z pomocą przyjdzie nam System.out.print, które już wykorzystaliśmy w poprzednim wpisie. A więc mamy o to pusty program z takim kodem:

package com.company;

public class Main {

    public static void main(String[] args) {

    }
}

No to zadeklarujmy teraz zmienną każdego typu i nazwijmy ją jak tylko chcemy. Zadeklarujemy je oczywiście w funkcji main.

Za pomocą wszystkich typów przypiszę do zmiennych informacje o osobie, żebyśmy nie działali tylko w abstrakcji.

package com.company;

public class Main {

    public static void main(String[] args) {
        int wiek = 21;
        double wzrost = 183.2d;
        float waga = 85.4f;
        long pesel = 97010101456l;
        char sex = 'M';
        boolean loveProgramming = true;
        byte luckyNumber = 9;
        short footSize = 45;
    }
}

Do naszego kodu warto też dodać komentarze, jednak czym one są?

Komentarze

Zdecydowałem się tylko chwilę poświęcić na komentarze, stwierdziłem, że jest to przydatne zagadnienie, jednak nie wymagana on zbyt dużo czasu.

Czym więc jest komentarz? Komentarz jest linią lub blokiem słów, które nie są interpretowane przez kompilator. Oznacza to, że kompilator całkowicie je omija. Piszemy je tylko dla siebie lub dla innych programistów, aby czasami wytłumaczyć im nasze zamiary. No to teraz jak używamy komentarzy:

package com.company;

public class Main {

    public static void main(String[] args) {
        //jest to komentarz liniowy, kompilator go ominie
        int wiek = 21;
        double wzrost = 183.2d;
        float waga = 85.4f;
        long pesel = 97010101456l;
        /*
        
            Zdecydowałem się na komentarz blokowy,
            a czemu by nie,
            przecież mogę
        
         */
        char sex = 'M';
        boolean loveProgramming = true;
        byte luckyNumber = 9;
        short footSize = 45;
    }
}

Proste prawda? W takim razie jednak edytujmy te komentarze, aby opisać dane zmienne.

package com.company;

public class Main {

    public static void main(String[] args) {
        /*
            Informacje o:
            Janie Kowalskim
         */
        
        // wiek 
        int wiek = 21;
        
        //wzrost 
        double wzrost = 183.2d;
        
        // waga 
        float waga = 85.4f;
        
        // pesel 
        long pesel = 97010101456l;
        
        // płeć
        char sex = 'M';
        
        //czy kocha programować
        boolean loveProgramming = true;
        
        //szczęścliwa liczba
        byte luckyNumber = 9;
        
        //rozmiar stopy
        short footSize = 45;
    }
}

No i dzięki komentarzom nasz kod może być bardziej zrozumiały dla osoby, która widzi go po raz pierwszy. Oczywiście na konieć wyświetlmy dane o Janie Kowalskim na ekran konsoli.

package com.company;

public class Main {

    public static void main(String[] args) {
        /*
            Informacje o:
            Janie Kowalskim
         */

        // wiek
        int wiek = 21;

        //wzrost
        double wzrost = 183.2d;

        // waga
        float waga = 85.4f;

        // pesel
        long pesel = 97010101456l;

        // płeć
        char sex = 'M';

        //czy kocha programować
        boolean loveProgramming = true;

        //szczęścliwa liczba
        byte luckyNumber = 9;

        //rozmiar stopy
        short footSize = 45;

        System.out.println("Dane o Janie Kowalskim: " );
        System.out.println("Wiek: " + wiek);
        System.out.println("Wzrost: " + wzrost);
        System.out.println("Waga: " + waga);
        System.out.println("Pesel: " + pesel);
        System.out.println("Płeć: " + sex);
        System.out.println("Czy kocha programować: " + loveProgramming);
        System.out.println("Szczęśliwa liczba " + luckyNumber );
        System.out.println("Rozmiar stopy: " + footSize);
    }
}

No i naszym oczom ukazują się informacje wyświetlone w konsoli. Jak widzisz, aby wyświetlić zawartość danej zmiennej wystarczy użyć jej nazwy. Proste prawda? 🙂

Dane z konsoli

Na koniec

Z materiału, który dzisiaj poznałeś ciężko jest wymyślić mi jakiekolwiek zadanie do zrobienia, jednak zachęcam Cię do zadeklarowania każdego z typów i przypisywania do niego różnych wartości.

Dodatkowo przeczytaj ponownie jakie wartości możesz przypisać do danego typu danych, aby chociaż w pewnym stopniu mieć rozeznianie co możemy, gdzie wpisać. 😉