logo

Instantiering i Java

Instantiering är ett enormt ord för att definiera ett universellt och okomplicerat koncept inom Java-programmering, vilket skapar nya instanser av föremål som ska användas i ett program. I det här avsnittet kommer vi att diskutera vad är instansiering i Java, hur man instansierar en klass, och vilka är sätten att skapa instanser eller objekt av klassen?

Instantiering i Java

Instantiering

I Java , instansiering menar att ringa till konstruktör av en klass som skapar en exempel eller objekt av typen av den klassen. Med andra ord, att skapa ett objekt i klassen kallas instansiering . Den upptar det initiala minnet för objektet och returnerar en referens. En objektinstansiering i Java tillhandahåller ritningen för klassen.

Vad är ett föremål?

  • Det är en runtime-enhet.
  • Den innehåller ritningen för klassen.
  • Vi kan skapa valfritt antal objekt i en klass.
  • Det kan representera användardefinierade data som Vektor , listor osv.

Syntax för instansiering

 ClassName objName = new ClassName(); 

Eller

 ClassName cn; cn= new ClassName; 

Låt oss förstå påståendena ovan genom ett exempel.

Skapa instanser

Det finns två sätt att skapa instanser:

Använder det nya nyckelordet

Java tillhandahåller ny nyckelord för att instansiera en klass.

Definiera en referens

 //defines a reference (variable) that can hold an object of the DemoClass DemoClass dc; 

Instantiering

lyssna port
 DemoClass dc = new DemoClass(); //instantiation 

Vi kan också instansiera ovanstående klass enligt följande om vi definierar en referensvariabel.

 //creates a DemoClass object (instantiate) //new keyword allocates memory space for the newly created object dc = new DemoClass(); 

Vi observerar att när vi använder ny nyckelordet följt av klassnamnet, skapar det en instans eller ett objekt av den klassen. Skapa en konstruktör av klassen är också känd som instansiering .

Obs: Om vi ​​vill anropa metoderna för den lokala inre klassen måste vi instansiera den klassen.

Använder statisk fabriksmetod

Ett annat sätt att instansiera en klass är genom att anropa a statisk fabriksmetod . En klass kan tillhandahålla en offentlig statisk fabriksmetod som inte är något annat än en statisk metod som returnerar en exempel av klassen. Kom alltid ihåg att det inte är samma sak som fabriksmetodmönster .

Vi kan använda den istället för konstruktören. Att tillhandahålla en statisk fabriksmetod istället för en konstruktör har både för- och nackdelar. De först fördelen är att statiska fabriksmetoder också har namn, till skillnad från konstruktörer. De andra fördelen är att till skillnad från konstruktörer behöver de inte skapa ett nytt objekt varje gång de anropas. De tredje fördelen är att till skillnad från konstruktörer kan de returnera ett objekt av vilken undertyp som helst av deras returtyp. De fjärde fördelen är att de minskar mångfalden av att skapa instanser av parametertyp.

Nackdelen är att endast statiska fabriksmetoder tillhandahålls är att klasser utan offentliga eller skyddade konstruktörer inte kan underklassas. En annan nackdel är att de inte lätt kan särskiljas från andra statiska metoder.

Låt oss se ett exempel på den statiska fabriksmetoden.

 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); } //.. } 

Låt oss se några viktiga frågor som kan klicka i sinnet.

Kan vi instansiera abstrakt klass?

Nej, vi kan inte instansiera abstrakta klasser . Men de kan underklassas. När en abstrakt klass är underklassad tillhandahåller den vanligtvis implementeringar för hela abstraktet metoder i sin föräldraklass.

Vad är skillnaden mellan instansiering och initiering?

Instantiering och initialisering är helt olika begrepp inom Java-programmering.

ett exempel på ett OS med öppen källkod är

Initiering: Att tilldela ett värde till en variabel kallas initiering . Till exempel, kostnad = 100 . Den sätter det initiala värdet för den rörliga kostnaden till 100.

Instantiation: Att skapa ett objekt med det nya nyckelordet kallas instansiering. Till exempel, Bil ca = ny bil(). Det skapar en instans av klassen Bil.