„Java“ konstruktoriai (su pavyzdžiais)

Šioje pamokoje su pavyzdžių pagalba sužinosime apie „Java“ konstruktorius, jų tipus ir kaip juos naudoti.

Kas yra konstruktorius?

„Java“ konstruktorius yra panašus į metodą, kuris yra naudojamas sukūrus klasės objektą.

Skirtingai nuo „Java“ metodų, konstruktorius turi tą patį pavadinimą, kaip ir klasė, ir neturi jokio grąžinimo tipo. Pavyzdžiui,

 klasės testas (Test () (// konstruktoriaus korpusas))

Čia Test()yra konstruktorius. Jis turi tą patį pavadinimą kaip klasė ir neturi grąžinimo tipo.

Rekomenduojamas skaitymas: Kodėl konstruktoriai negrąžina verčių

1 pavyzdys: „Java Constructor“

 class Main ( private String name; // constructor Main() ( System.out.println("Constructor Called:"); name = "Programiz"; ) public static void main(String() args) ( // constructor is invoked while // creating an object of the Main class Main obj = new Main(); System.out.println("The name is " + obj.name); ) )

Išvestis :

 Skambino konstruktorius: vardas yra „Programiz“

Ankstesniame pavyzdyje mes sukūrėme konstruktorių, pavadintą Main(). Konstruktoriaus viduje inicijuojame vardo kintamojo vertę.

Atkreipkite dėmesį į pagrindinės klasės objekto sukūrimo teiginį.

 Main obj = new Main();

Čia, sukūrus objektą, Main()vadinamas konstruktorius. Ir vardo kintamojo vertė inicijuojama.

Vadinasi, programa pavadinimo kintamųjų vertę išspausdina kaip Programiz.

Konstruktoriaus tipai

„Java“ konstruktorius galima suskirstyti į 3 tipus:

  1. „No-Arg“ konstruktorius
  2. Parametruotas konstruktorius
  3. Numatytasis konstruktorius

1. „Java No-Arg“ konstruktoriai

Panašiai kaip metodai, „Java“ konstruktorius gali turėti parametrų (argumentų) arba neturėti jų.

Jei konstruktorius nepriima jokių parametrų, jis vadinamas konstruktoriumi be argumentų. Pavyzdžiui,

 private Constructor() ( // body of the constructor )

2 pavyzdys: „Java“ privatus konstruktorius be argumentų

 class Main ( int i; // constructor with no parameter private Main() ( i = 5; System.out.println("Constructor is called"); ) public static void main(String() args) ( // calling the constructor without any parameter Main obj = new Main(); System.out.println("Value of i: " + obj.i); ) )

Išvestis :

 Konstruktorius vadinamas i reikšme: 5

Ankstesniame pavyzdyje mes sukūrėme konstruktorių Main(). Čia konstruktorius nepriima jokių parametrų. Vadinasi, jis yra žinomas kaip konstruktorius be argo.

Atkreipkite dėmesį, kad mes paskelbėme, kad konstruktorius yra privatus.

Paskelbus konstruktorių private, jo negalima pasiekti iš klasės ribų. Taigi, naudojant privatų konstruktorių, draudžiama kurti objektus ne iš klasės.

Čia mes kuriame objektą tos pačios klasės viduje. Taigi programa gali pasiekti konstruktorių. Norėdami sužinoti daugiau, apsilankykite „Java Implement Private Constructor“.

Tačiau jei norime sukurti objektus už klasės ribų, tuomet konstruktorių turime deklaruoti kaip public.

3 pavyzdys: „Java“ viešieji be argumentų konstruktoriai

 class Company ( String name; // public constructor public Company() ( name = "Programiz"; ) ) public class Main ( public static void main(String() args) ( // object is created in another class Company obj = new Company(); System.out.println("Company name = " + obj.name); ) )

Išvestis :

 Įmonės pavadinimas = Programiz

Rekomenduojamas skaitymas: „ Java Access Modifier“

2. „Java“ parametruojamas konstruktorius

„Java“ konstruktorius taip pat gali priimti vieną ar daugiau parametrų. Tokie konstruktoriai yra žinomi kaip parametrizuoti konstruktoriai (konstruktorius su parametrais).

4 pavyzdys: Parametruotas konstruktorius

 class Main ( String languages; // constructor accepting single value Main(String lang) ( languages = lang; System.out.println(languages + " Programming Language"); ) public static void main(String() args) ( // call constructor by passing a single value Main obj1 = new Main("Java"); Main obj2 = new Main("Python"); Main obj3 = new Main("C"); ) )

Išvestis :

 Java programavimo kalba Python programavimo kalba C programavimo kalba

Ankstesniame pavyzdyje mes sukūrėme konstruktorių, pavadintą Main(). Čia konstruktorius paima vieną parametrą. Atkreipkite dėmesį į išraišką,

 Main obj1 = new Main("Java");

Čia mes perduodame vieną vertę konstruktoriui. Remiantis perduotu argumentu, kalbos kintamasis inicijuojamas konstruktoriaus viduje.

3. Numatytasis „Java“ konstruktorius

Jei nekursime jokio konstruktoriaus, „Java“ kompiliatorius, vykdydamas programą, automatiškai sukurs „no-arg“ konstruktorių. Šis konstruktorius vadinamas numatytuoju konstruktoriumi.

5 pavyzdys: numatytasis konstruktorius

 class Main ( int a; boolean b; public static void main(String() args) ( // A default constructor is called Main obj = new Main(); System.out.println("Default Value:"); System.out.println("a = " + obj.a); System.out.println("b = " + obj.b); ) )

Išvestis :

 a = 0 b = klaidinga

Čia mes nesukūrėme jokių konstruktorių. Taigi „Java“ kompiliatorius automatiškai sukuria numatytąjį konstruktorių.

Numatytasis konstruktorius inicijuoja visus neinicijuotus egzempliorių kintamuosius su numatytosiomis reikšmėmis.

Tipas Numatytoji reikšmė
boolean melagingas
byte 0
short 0
int 0
long 0L
char u0000
float 0.0f
double 0.0d
object Nuoroda nulinė

Pirmiau pateiktoje programoje kintamieji a ir b inicijuojami pagal numatytąją reikšmę 0 ir falseatitinkamai.

The above program is equivalent to:

 class Main ( int a; boolean b; // a private constructor private Main() ( a = 0; b = false; ) public static void main(String() args) ( // call the constructor Main obj = new Main(); System.out.println("Default Value:"); System.out.println("a = " + obj.a); System.out.println("b = " + obj.b); ) )

The output of the program is the same as Example 5.

Important Notes on Java Constructors

  • Constructors are invoked implicitly when you instantiate objects.
  • The two rules for creating a constructor are:
    The name of the constructor should be the same as the class.
    A Java constructor must not have a return type.
  • If a class doesn't have a constructor, the Java compiler automatically creates a default constructor during run-time. The default constructor initializes instance variables with default values. For example, the int variable will be initialized to 0
  • Constructor types:
    No-Arg Constructor - a constructor that does not accept any arguments
    Parameterized constructor - a constructor that accepts arguments
    Default Constructor - a constructor that is automatically created by the Java compiler if it is not explicitly defined.
  • A constructor cannot be abstract or static or final.
  • A constructor can be overloaded but can not be overridden.

Constructors Overloading in Java

Similar to Java method overloading, we can also create two or more constructors with different parameters. This is called constructors overloading.

Example 6: Java Constructor Overloading

 class Main ( String language; // constructor with no parameter Main() ( this.language = "Java"; ) // constructor with a single parameter Main(String language) ( this.language = language; ) public void getName() ( System.out.println("Programming Langauage: " + this.language); ) public static void main(String() args) ( // call constructor with no parameter Main obj1 = new Main(); // call constructor with a single parameter Main obj2 = new Main("Python"); obj1.getName(); obj2.getName(); ) )

Output:

 Programming Language: Java Programming Language: Python

Ankstesniame pavyzdyje mes turime du konstruktorius: Main()ir Main(String language). Čia abu konstruktoriai inicijuoja kintamosios kalbos vertę skirtingomis reikšmėmis.

Pagal parametrą, perduotą kuriant objektą, iškviečiami skirtingi konstruktoriai ir priskiriamos skirtingos vertės.

Taip pat galima paskambinti vienam konstruktoriui iš kito konstruktoriaus. Norėdami sužinoti daugiau, apsilankykite „Java Call One Constructor from Another“.

Pastaba : thisklasės kintamajam nurodyti naudojome raktinį žodį. Norėdami sužinoti daugiau apie thisraktinį žodį, apsilankykite „Java“ šiame raktažodyje.

Įdomios straipsniai...