logo

Instanciace v Javě

Instanciace je nesmírné slovo, které definuje univerzální a přímočarý koncept v programování Java a vytváří nové instance objektů k použití v programu. V této části budeme diskutovat co je konkretizace v Javě, jak vytvořit instanci třídy, a jaké jsou způsoby vytváření instancí nebo objektů třídy?

Instanciace v Javě

Instanciace

v Jáva , konkretizace znamená zavolat konstruktér třídy, která vytváří instance nebo objekt typu této třídy. Jinými slovy, nazývá se vytvoření objektu třídy konkretizace . Zabírá počáteční paměť pro objekt a vrací odkaz. Konkretizace objektu v Javě poskytuje návrh třídy.

Co je to předmět?

  • Je to runtime entita.
  • Obsahuje plán třídy.
  • Můžeme vytvořit libovolný počet objektů třídy.
  • Může představovat uživatelsky definovaná data jako Vektor , seznamy atd.

Syntaxe pro Instanciation

 ClassName objName = new ClassName(); 

Nebo

 ClassName cn; cn= new ClassName; 

Pojďme pochopit výše uvedená tvrzení na příkladu.

Vytváření instancí

Existují dva způsoby, jak vytvořit instance:

Pomocí nového klíčového slova

Java poskytuje Nový klíčové slovo k vytvoření instance třídy.

Definování reference

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

Instanciace

0,04 jako zlomek
 DemoClass dc = new DemoClass(); //instantiation 

Můžeme také vytvořit instanci výše uvedené třídy následovně, pokud definujeme referenční proměnnou.

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

Pozorujeme, že když používáme Nový klíčové slovo následované názvem třídy, vytvoří instanci nebo objekt této třídy. Vytvoření konstruktoru třídy je také známý jako konkretizace .

Poznámka: Pokud chceme vyvolat metody místní vnitřní třídy, musíme tuto třídu instanciovat.

Použití statické tovární metody

Dalším způsobem, jak vytvořit instanci třídy, je volání a statický tovární metoda . Třída může poskytnout veřejnou statickou tovární metodu, která není nic jiného než statická metoda, která vrací an instance třídy. Vždy si pamatujte, že to není totéž jako vzor tovární metody .

Můžeme ho použít místo konstruktoru. Poskytnutí statické tovární metody namísto konstruktoru má své klady i zápory. The První výhodou je, že statické tovární metody mají na rozdíl od konstruktorů také jména. The druhý výhodou je, že na rozdíl od konstruktorů nemusí vytvářet nový objekt pokaždé, když jsou vyvolány. The Třetí výhodou je, že na rozdíl od konstruktorů mohou vrátit objekt libovolného podtypu svého návratového typu. The Čtvrtý výhodou je, že snižují upovídanost vytváření instancí parametrizovaných typů.

Nevýhodou je, že poskytování pouze statických továrních metod spočívá v tom, že třídy bez veřejných nebo chráněných konstruktorů nemohou být podtříděny. Další nevýhodou je, že nejsou snadno odlišitelné od jiných statických metod.

Podívejme se na příklad statické tovární metody.

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

Podívejme se na některé důležité otázky, které vás mohou napadnout.

Můžeme vytvořit instanci abstraktní třídy?

Ne, nemůžeme vytvořit instanci abstraktní třídy . Ale mohou být podtříděny. Když je abstraktní třída podtřídou, obvykle poskytuje implementace pro všechny abstraktní metody ve své mateřské třídě.

Jaký je rozdíl mezi konkretizací a inicializací?

Instanciace a inicializace jsou zcela odlišné pojmy v programování Java.

java řetězec na char

Inicializace: Přiřazení hodnoty proměnné se nazývá inicializace . Například, cena = 100 . Nastaví počáteční hodnotu variabilních nákladů na 100.

Instanciace: Vytvoření objektu pomocí klíčového slova new se nazývá konkretizace. Například, Car ca = nové auto(). Vytvoří instanci třídy Car.