Video: Java svenska - 33 - Konstruktorer 2024
A konstruktör i Java är ett block av kod som liknar en metod som kallas när en instans av en objekt skapas. Här är de viktigaste skillnaderna mellan en konstruktör och en metod:
-
En konstruktör har ingen returtyp.
-
Konstruktorns namn måste vara densamma som klassens namn.
-
Till skillnad från metoder anses byggare inte vara medlemmar i en klass.
-
En konstruktör kallas automatiskt när en ny instans av ett objekt skapas.
Här är det grundläggande formatet för kodning av en konstruktör:
public ClassName (parameterlista) [kastar undantag …] {uttalanden …}
Det offentliga sökordet indikerar att andra klasser kan komma åt konstruktören. Klassnamn måste vara densamma som namnet på den klass som innehåller konstruktören. Du kodar parameterlistan på samma sätt som du kodar den för en metod.
Observera också att en konstruktör kan kasta undantag om den möter situationer som den inte kan återhämta sig från.
Med en konstruktör kan du ange initialvärden för klassfält när du skapar objektet. Antag att du har en klass som heter Skådespelare som har fält med namnet FirstName och LastName. Du kan skapa en konstruktör för skådespelarklassen:
allmän skådespelare (sträng först, sträng sista) {firstName = first; lastName = last;}
Då skapar du en förekomst av skådespelarklassen genom att ringa till den här konstruktören:
Skådespelare a = ny skådespelare ("Arnold", "Schwarzenegger");
Ett nytt skådespelareobjekt för Arnold Schwarzenegger skapades.
Liksom metoder kan konstruktörer överbelastas. Med andra ord kan du ge mer än en konstruktör för en klass om varje konstruktör har en unik signatur. Här är en annan konstruktör för skådespelarklassen:
Officiell Skådespelare (String först, String sist, Boolean bra) {firstName = first; lastName = last; goodActor = good;}
Med denna konstruktör kan du skapa ett skådespelareobjekt med information utöver skådespelarens namn:
Skådespelare a = ny skådespelare ("Arnold", "Schwarzenegger", falsk);
Om du inte tillhandahåller en konstruktör för en klass skapar Java automatiskt en standardkonstruktor som inte har några parametrar och initierar inte några fält. Den här standardkonstruktorn kallas om du anger det nya sökordet utan att överföra parametrar. Till exempel:
Boll b = ny Boll ();
Här skapas en variabel av typen Ball genom att använda standardkonstruktorn för Ball-klassen.
Om du uttryckligen förklarar några konstruktörer för en klass skapar Java inte en standardkonstruktor för klassen.Som ett resultat, om du förklarar en konstruktör som accepterar parametrar och fortfarande vill ha en tom konstruktör (utan parametrar och ingen kropp), måste du uttryckligen förklara en tom konstruktör för klassen.