Sobes.tech
Junior

Wat is typecasting in Java?

sobes.tech AI

Antwoord van AI

Typecasting (omzetten) in Java is het omzetten van de waarde van het ene datatype naar een ander datatype.

Soorten typecasting:

  • Expliciete (Duidelijke) Casting: Uitgevoerd door de programmeur met behulp van de operator (type). Gebruikt om te converteren van een "groter" type naar een "kleiner" type (bijvoorbeeld van double naar int). Kan leiden tot gegevensverlies.
    // impliciete casting (automatisch)
    int a = 10;
    double b = a; // int naar double
    
    // expliciete casting (duidelijk)
    double c = 10.5;
    int d = (int) c; // double naar int, d wordt 10
    
  • Impliciete (Automatische) Casting / Widening Conversion: Wordt automatisch door de JVM gedaan wanneer er wordt geconverteerd van een "kleiner" type naar een "groter" type (bijvoorbeeld van int naar double). Is veilig en leidt niet tot gegevensverlies.
    int x = 10;
    double y = x; // int automatisch geconverteerd naar double
    

Typecasting kan plaatsvinden tussen primitieve types of tussen objecttypes in een erfenishierarchie.

Bij objecttypecasting:

  • Upcasting: Het converteren van een subklasse naar zijn superklasse. Is impliciet en veilig.
    class Animal {}
    class Dog extends Animal {}
    
    Animal animal = new Dog(); // Upcasting
    
  • Downcasting: Het converteren van een superklasse naar zijn subklasse. Vereist expliciete conversie en kan ClassCastException veroorzaken tijdens runtime als het object niet daadwerkelijk een instantie is van de doel- subklasse.
    Animal animal = new Dog(); // Upcasting
    
    // Downcasting - vereist expliciete conversie en instanceof controle
    if (animal instanceof Dog) {
        Dog dog = (Dog) animal;
        // Nu kunnen we methoden gebruiken die specifiek zijn voor Dog
    }