Instantiation er et enormt ord til at definere et universelt og ligetil koncept i Java-programmering, hvilket skaber nye forekomster af genstande skal bruges i et program. I dette afsnit vil vi diskutere hvad er instansiering i Java, hvordan instansierer man en klasse, og hvad er måderne til at oprette forekomster eller objekter af klassen?
Instantiation
I Java , instansiering mener at ringe til konstruktør af en klasse, der skaber en eksempel eller objekt af typen af den pågældende klasse. Med andre ord kaldes det at skabe et objekt i klassen instansiering . Det optager den oprindelige hukommelse for objektet og returnerer en reference. En objektinstansering i Java giver klassens blueprint.
Hvad er en genstand?
- Det er en runtime-entitet.
- Den indeholder klassens blueprint.
- Vi kan oprette et hvilket som helst antal objekter i en klasse.
- Det kan repræsentere brugerdefinerede data som f.eks Vektor , lister osv.
Syntaks for instansiering
ClassName objName = new ClassName();
Eller
ClassName cn; cn= new ClassName;
Lad os forstå ovenstående udsagn gennem et eksempel.
Oprettelse af instanser
Der er to måder at oprette forekomster på:
- Bruger ny Søgeord
- Ved brug af Statisk fabriksmetode
Brug af det nye søgeord
Java giver ny søgeord at instansiere en klasse.
Definition af en reference
//defines a reference (variable) that can hold an object of the DemoClass DemoClass dc;
Instantiation
generel beskyttelsesfejl
DemoClass dc = new DemoClass(); //instantiation
Vi kan også instansiere ovenstående klasse som følger, hvis vi definerer en referencevariabel.
//creates a DemoClass object (instantiate) //new keyword allocates memory space for the newly created object dc = new DemoClass();
Vi observerer, at når vi bruger ny nøgleord efterfulgt af klassenavnet, opretter det en forekomst eller et objekt af den pågældende klasse. Oprettelse af en konstruktør af klassen er også kendt som instansiering .
Bemærk: Hvis vi ønsker at påberåbe den lokale indre klasses metoder, skal vi instansiere den klasse.
Brug af statisk fabriksmetode
En anden måde at instansiere en klasse på er ved at kalde en statisk fabriksmetode . En klasse kan give en offentlig statisk fabriksmetode, der ikke er andet end en statisk metode, der returnerer en eksempel af klassen. Husk altid, at det ikke er det samme som fabriksmetodemønster .
Vi kan bruge det i stedet for konstruktøren. At levere en statisk fabriksmetode i stedet for en konstruktør har både fordele og ulemper. Det først fordelen er, at statiske fabriksmetoder også har navne, i modsætning til konstruktører. Det anden fordelen er, at i modsætning til konstruktører er de ikke forpligtet til at oprette et nyt objekt, hver gang de påkaldes. Det tredje fordelen er, at i modsætning til konstruktører kan de returnere et objekt af enhver undertype af deres returtype. Det fjerde fordelen er, at de reducerer omfanget af at skabe parameteriserede typeforekomster.
Ulempen er, at der kun tilbydes statiske fabriksmetoder, at klasser uden offentlige eller beskyttede konstruktører ikke kan underklassificeres. En anden ulempe er, at de ikke let kan skelnes fra andre statiske metoder.
Lad os se et eksempel på den statiske fabriksmetode.
scan.next java
public final class Furniture { //.. private int price; private String description; private Furniture (int price, String description) { this.price = price; this.description = description; } public static Furniture getNewFurniture (int price, String description) { return new Furniture (price, description); } //.. }
Lad os se nogle vigtige spørgsmål, der kan klikke i sindet.
Kan vi instansiere abstrakt klasse?
Nej, vi kan ikke instansiere abstrakte klasser . Men de kan underklassificeres. Når en abstrakt klasse er underklassificeret, giver den normalt implementeringer for hele abstraktet metoder i sin forældreklasse.
Hvad er forskellen mellem instansiering og initialisering?
Instantiering og initialisering er helt forskellige begreber i Java-programmering.
Initialisering: At tildele en værdi til en variabel kaldes initialisering . For eksempel, pris = 100 . Den sætter den oprindelige værdi af de variable omkostninger til 100.
Instantiation: Oprettelse af et objekt ved at bruge det nye nøgleord kaldes instansiering. For eksempel, Bil ca = ny bil(). Det opretter en forekomst af Car-klassen.