LÄR DIG JAVA

Konstruktor i Java: Instansiera objekt

En konstruktor används för att initiera ett nytt objekt. Den har samma namn som klassen och skrivs utan returtyp – inte ens void.

Så deklarerar du en konstruktor

class Dog {
    String name;
    int age;

    Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

this.name är det aktuella objektets instansvariabel. name utan prefix är här parametern med samma namn.

Skapa ett objekt

Placera följande rad i en metod, exempelvis main:

Dog dog = new Dog("Bosse", 3);

Uttrycket new Dog(...) skapar objektet, anropar konstruktorn och ger en referens till objektet. Konstruktorn själv returnerar inget värde.

Standardkonstruktor och flera konstruktorer

För en vanlig klass där du inte deklarerar någon konstruktor skapar kompilatorn en parameterlös standardkonstruktor. Om du skriver en egen konstruktor läggs ingen sådan automatiskt till. En klass kan ha flera konstruktorer med olika parameterlistor.

En parameterlös konstruktor som du själv skriver kan innehålla initieringskod. Konstruktorer ärvs inte. En konstruktor kan använda super(...) för att anropa en konstruktor i superklassen eller this(...) för att anropa en annan konstruktor i samma klass.

Skillnad mot en metod

En metod har en returtyp, antingen en datatyp eller void. En konstruktor har ingen returtyp. Att skriva void Dog() skulle därför deklarera en vanlig metod, inte en konstruktor.

Fortsätt med exemplet på att skapa hundobjekt.

Vanliga frågor om Konstruktor i Java: Instansiera objekt

Vad handlar Konstruktor i Java: Instansiera objekt om?

Konstruktor i Java används för att skapa objekt från en klass. Det är här man ger objektet de värden som man önskar att objektet ska ha.

Hur övar jag på Konstruktor i Java: Instansiera objekt?

Kör exemplen själv, ändra ett värde i taget och jämför sedan resultatet med förklaringen på sidan.