package gotowe.p02_zmienne;

import java.time.LocalDate;

public class Typy {

    public static void main(String[] args) {
        // Typy dzielą się na dwie kategorie:
        // 1) typy proste
        byte b = 15;
        short s = 1000;
        int i = 100000;
        long l1 = 10, l2 = 5000000000L;

        float f = 3.14F;
        double d = 3.14;

        // char to pojedynczy znak, ale jednocześnie może być traktowany jak liczba z zakresu 0-64k
        char znak = 'A';

        boolean falsz = false, prawda = true, niewiem = d > 3.0;

        // typów byte i short nie opłaca sie używać, chyba że w dużych tablicach

        // 2) typy obiektowe
        Object o = new Object();
        System.out.println(o);

        // klasa String - napisy
        String imie = "Ala";

        // platforma Java SE definiuje ok 4 tys. klas
        LocalDate data = LocalDate.now();
        System.out.println(data);
        System.out.println(data.getDayOfMonth());
        System.out.println(data.getDayOfYear());
        System.out.println();

        // programiści mogą tworzyć własne klasy

        // w Javie również tablice są obiektami:
        int[] liczby = { 1, 2, 3, 4 };
        System.out.println(liczby.length);

        System.out.println(liczby[1]); // 2
    }

}
