Инстанция е огромна дума за дефиниране на универсална и ясна концепция в програмирането на Java, създаваща нови екземпляри на обекти да се използва в програма. В този раздел ще обсъдим какво е инстанциране в Java, как да инстанцираме клас, и какви са начините за създаване на екземпляри или обекти от класа?
Инстанция
в Java , инстанциране искам да се обадя на конструктор на клас, който създава инстанция или обект от типа на този клас. С други думи, създаването на обект от класа се извиква инстанциране . Той заема първоначалната памет за обекта и връща препратка. Инстанциране на обект в Java предоставя план за класа.
Какво е обект?
- Това е обект по време на изпълнение.
- Той съдържа плана на класа.
- Можем да създадем произволен брой обекти от един клас.
- Може да представлява дефинирани от потребителя данни като вектор , списъци и др.
Синтаксис за екземпляр
ClassName objName = new ClassName();
Или
ClassName cn; cn= new ClassName;
Нека разберем горните твърдения чрез пример.
Създаване на инстанции
Има два начина за създаване на екземпляри:
- Използвайки нов Ключова дума
- Използвайки Статичен фабричен метод
Използване на новата ключова дума
Java предоставя нов ключова дума за създаване на клас.
Дефиниране на препратка
//defines a reference (variable) that can hold an object of the DemoClass DemoClass dc;
Инстанция
обяснете независимостта на данните
DemoClass dc = new DemoClass(); //instantiation
Можем също така да инстанцираме горния клас, както следва, ако дефинираме референтна променлива.
//creates a DemoClass object (instantiate) //new keyword allocates memory space for the newly created object dc = new DemoClass();
Наблюдаваме, че когато използваме нов ключова дума, последвана от името на класа, тя създава екземпляр или обект от този клас. Създаване на конструктор от класа е известен още като инстанциране .
как да отворите файл с java
Забележка: Ако искаме да извикаме методите на локалния вътрешен клас, трябва да инстанцираме този клас.
Използване на статичен фабричен метод
Друг начин за инстанциране на клас е чрез извикване на a статичен фабричен метод . Един клас може да предостави публичен статичен фабричен метод, който не е нищо друго освен статичен метод, който връща an инстанция от класа. Винаги помнете, че не е същото като модел на фабричен метод .
Можем да го използваме вместо конструктора. Предоставянето на статичен фабричен метод вместо конструктор има както плюсове, така и минуси. The първи предимството е, че статичните фабрични методи също имат имена, за разлика от конструкторите. The второ предимството е, че за разлика от конструкторите не се изисква да създават нов обект всеки път, когато бъдат извикани. The трети предимство е, че за разлика от конструкторите те могат да върнат обект от всеки подтип на техния тип на връщане. The четвърто Предимството им е, че те намаляват подробността на създаването на екземпляри на параметризиран тип.
Недостатъкът е, че предоставянето само на статични фабрични методи е, че класовете без публични или защитени конструктори не могат да бъдат подкласирани. Друг недостатък е, че те не се различават лесно от другите статични методи.
Нека да видим пример за статичния фабричен метод.
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); } //.. }
Нека видим някои важни въпроси, които може да щракнат в ума.
Можем ли да създадем абстрактен клас?
Не, не можем да създадем екземпляр абстрактни класове . Но те могат да бъдат подкласирани. Когато един абстрактен клас е подклас, той обикновено осигурява реализации за целия абстракт методи в своя родителски клас.
Каква е разликата между инстанциране и инициализация?
Инстанцирането и инициализирането са напълно различни понятия в програмирането на Java.
Инициализация: Извиква се присвояване на стойност на променлива инициализация . Например, цена = 100 . Той задава първоначалната стойност на променливата цена на 100.
Инстанция: Създаването на обект с помощта на ключовата дума new се нарича инстанциране. Например, Кола ca = нова кола(). Той създава екземпляр на класа Car.