// 1. hét – Elemi adattípusok Java nyelven
// Futtatás: java Types.java
public class Types {

    // Konstans: értéke a program futása alatt nem változhat (final).
    static final double PI = 3.14159;
    static final int DAYS_IN_WEEK = 7;

    public static void main(String[] args) {
        // --- Egész típusok: méret és tartomány ---
        System.out.println("Egész típusok:");
        System.out.printf("  byte : %2d bit, %d .. %d%n", Byte.SIZE, Byte.MIN_VALUE, Byte.MAX_VALUE);
        System.out.printf("  short: %2d bit, %d .. %d%n", Short.SIZE, Short.MIN_VALUE, Short.MAX_VALUE);
        System.out.printf("  int  : %2d bit, %d .. %d%n", Integer.SIZE, Integer.MIN_VALUE, Integer.MAX_VALUE);
        System.out.printf("  long : %2d bit, %d .. %d%n", Long.SIZE, Long.MIN_VALUE, Long.MAX_VALUE);

        // --- Valós (lebegőpontos) típusok ---
        System.out.println("Valós típusok:");
        System.out.printf("  float : %2d bit, max %e%n", Float.SIZE, Float.MAX_VALUE);
        System.out.printf("  double: %2d bit, max %e%n", Double.SIZE, Double.MAX_VALUE);

        // --- Literálok: a forráskódba közvetlenül beírt értékek ---
        int decimal = 42;          // tízes számrendszer
        int hex = 0x2A;            // tizenhatos számrendszer
        int binary = 0b101010;     // kettes számrendszer
        long big = 9_000_000_000L; // L utótag: long literál
        float f = 2.5f;            // f utótag: float literál
        double d = 2.5e3;          // tudományos alak: 2500.0
        System.out.println("Literálok: " + decimal + " " + hex + " " + binary + " " + big + " " + f + " " + d);

        // --- Karakter: 16 bites Unicode kódegység ---
        char c = 'A';
        System.out.println("Karakter: " + c + ", kódja: " + (int) c);
        char next = (char) (c + 1);
        System.out.println("A következő karakter: " + next);

        // --- Logikai típus ---
        boolean isEven = (decimal % 2 == 0);
        System.out.println("42 páros? " + isEven);

        // --- Konstansok használata ---
        double r = 2.0;
        System.out.println("A kör területe (r=2): " + PI * r * r);
        System.out.println("Napok száma 3 hét alatt: " + 3 * DAYS_IN_WEEK);
    }
}
