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.