logo

Kāpēc Java mēs izmantojam konstruktoru?

Šajā sadaļā mēs uzzināsim kāpēc mēs Java izmantojam konstruktoru un kāds ir mērķis un konstruktora nepieciešamība . Kopā ar to mēs redzēsim arī konstruktora veidi.

Java valodā, konstruktors ir līdzīga metodei. Konstruktora īpašība ir tāda, ka tam ir jābūt tādam pašam nosaukumam kā klases nosaukumam. Tam nav atgriešanas veida. Mums nav nepieciešams manuāli izsaukt konstruktoru. Instantiācijas laikā tas automātiski tiek izsaukts netieši.

xor c++

Citiem vārdiem sakot, konstruktors ir metode, kas tiek izsaukta izpildes laikā objekta izveides laikā, izmantojot jauno operatoru. JVM to automātiski izsauc, kad mēs izveidojam objektu. Ja mēs klasē nedefinējam konstruktoru, noklusējuma konstruktors klasē vienmēr ir nemanāmi. Konstruktoru izmantošanai ir šādi iemesli:

  • Mēs izmantojam konstruktorus, lai inicializētu objektu ar noklusējuma vai sākuma stāvokli. Primitīvu noklusējuma vērtības var nebūt tas, ko jūs meklējat.
  • Vēl viens konstruktora izmantošanas iemesls ir tas, ka tas informē par atkarībām. Citiem vārdiem sakot, izmantojot konstruktoru, mēs varam pieprasīt šīs klases lietotājam nepieciešamās atkarības.
  • Mēs varam uzzināt, kas tai nepieciešams, lai izmantotu šo klasi, tikai apskatot konstruktoru.

Īsāk sakot, mēs izmantojam konstruktoru, lai inicializējiet klases instances mainīgo.

Konstruktoru veidi

Java ir divu veidu konstruktori:

  • Parametrizēts konstruktors
  • Noklusējuma konstruktors

Parametrizēts konstruktors

Kā norāda nosaukums, tas pieņem argumentus (parametrus). Parametrētais konstruktors tiek izmantots, ja vēlamies dinamiski inicializēt instanču mainīgos ar norādītajām vērtībām instantiācijas brīdī.

Piemērs

 public class Demo { int i; //parameterized constructor public demo(int i) { this.i = i; } } 

Noklusējuma konstruktors

Noklusējuma konstruktors nepieņem nevienu parametru. To izmanto, ja mēs vēlamies inicializēt gadījumu mainīgos ar noteiktām vērtībām. Katrai Java klasei ir noklusējuma konstruktors, kas ir neredzams. Tāpēc mums tas nav jādefinē atsevišķi. Atcerieties, ka noklusējuma konstruktors tiek noņemts no klases, kad mēs veidojam parametrizētu konstruktoru.

Piemērs

 public class Demo { int i; //default constructor public demo() { //the value of i is fixed this.i = 100; } } 

Piezīme. Ja Java programmai netiek nodrošināts neviens konstruktors, Java kompilators programmētāja vārdā raksta noklusējuma konstruktoru un kompilē programmu. Tas inicializē gadījumu mainīgos ar noklusējuma vērtībām. Piemēram, 0 veselam skaitlim, 0,0 peldošam un nullei virknei.

Izveidosim programmu un izmantosim noklusējuma un parametrizēto konstruktoru.

Darbinieku klasē esam izveidojuši divus konstruktorus, viens ir noklusējuma konstruktors, bet otrs ir parametrizētais konstruktors. Darbinieku klasei ir divi privāti mainīgie, proti, vārds un vecums. Galvenajā metodē esam izveidojuši klasi un izmantojuši abus konstruktorus.

pyspark sql

Darbinieks.java

 import java.util.Scanner; public class Employee { private String name; private int age; //parameterized constructor public Employee(String name, int age) { this.name =name; this.age = age; } //Default constructor public Employee() { this.name = 'William'; this.age = 28; } //method for printing the values public void show() { System.out.println('Name of the employee: '+this.name); System.out.println('Age of the employee: '+this.age); } //main method public static void main(String args[]) { Employee e=new Employee(); //Reading values from user Scanner sc = new Scanner(System.in); System.out.println('Enter the name of the employee: '); String name = sc.nextLine(); System.out.println('Enter the age of the employee: '); int age = sc.nextInt(); System.out.println(' '); //Calling the parameterized constructor System.out.println('Show() method for the parameterized constructor: '); new Employee(name, age).show(); //Calling the default constructor System.out.println('Show() method for the default constructor: '); new Employee().show(); } } 

Izvade:

 Enter the name of the employee: David Enter the age of the employee: 27 Show() method for the parameterized constructor: Name of the employee: David Age of the employee: 27 Show() method for the default constructor: Name of the employee: William Age of the employee: 28