Rumah  >  Artikel  >  Java  >  Pembina lebih muatan menggunakan blok statik di Java

Pembina lebih muatan menggunakan blok statik di Java

王林
王林ke hadapan
2023-09-06 14:41:061287semak imbas

Pembina lebih muatan menggunakan blok statik di Java

Tindakan menginstant objek memanggil pembina yang sepadan, yang merupakan asas bagi banyak ciri dalam pengaturcaraan berorientasikan objek. Perlu diingat bahawa dalam mana-mana program yang menggunakan objek, selalunya terdapat pembina lalai - pengkompil secara automatik menciptanya untuk kegunaan yang lancar.

Dalam perbincangan ini, kita akan menyelami lebih mendalam tentang pembina lebih muatan blok statik di Jawa. Pembebanan konstruktor ialah konsep mentakrifkan berbilang pembina dengan parameter berbeza dalam kelas.

Tatabahasa

Public class class_name {
   Class_name() {
   }
   Class_name(par1, par2..) {
   }
}

Menggunakan pembina dengan blok statik memberikan lebih kuasa dan fleksibiliti semasa pemulaan objek.

Algoritma

Untuk membebankan pembina menggunakan blok statik, sila ikut langkah ini -

  • Langkah 1 - Buat kelas dengan berbilang pembina dengan parameter berbeza.

  • Langkah 2 - Buat blok statik menggunakan kata kunci "statik"

    Blok ini dilaksanakan sekali apabila kelas dimuatkan ke dalam memori.

  • Langkah 3- Apabila memuatkan kelas, mula-mula blok statik dilaksanakan dan kemudian pembina dilaksanakan apabila objek dicipta.

  • Langkah 4 - Pembina akan dipanggil berdasarkan hujah yang disediakan.

Kaedah 1: Tentukan blok statik yang berasingan

Pendekatan ini melibatkan penentuan blok statik dan pembina terlebih beban secara berasingan.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

Class Class_name{
   Static {
   }
   Public class_name(){
   }
   Public class_name(int value) {
   }
   Public class_name(string name) {
   }
   //Other methods
}

Dalam pendekatan ini, kelas boleh mempunyai pembina yang terlebih beban dengan senarai parameter yang berbeza, yang juga termasuk kod permulaan. Terdapat juga blok statik yang berasingan untuk permulaan statik kelas. Blok ini akan dilaksanakan sekali.

Contoh

Dalam contoh ini kami akan menunjukkan kaedah 1

class Emp { int id, exp;String name;static String company;
   static { company = "XYZ Corp"; }
   public Emp(){
      System.out.println("-"
                           + "\t"
                           + "-"
                           + "\t"
                           + "-"
                           + "\t"
                           + "\t"
                           + "-"); }
   public Emp(int id, String name){ System.out.println(id + "\t" + name + "\t"
                           + company + "\t" + exp); }
   public Emp(int id, String name, int exp) {
      System.out.println(id + "\t" + name + "\t"  + company + "\t" + exp); }
}
public class Way2Class {
   public static void main(String[] args) {
      System.out.println("Id"
                           + "\t"
                           + "Name"
                           + "\t"
                           + "Company"
                           + "\t"
                           + "Exp");
      Emp obj1 = new Emp(001, "Apoorva");
      Emp obj2 = new Emp(004, "Anu", 10);
      Emp obj3 = new Emp();
   }
}

Output

Id	Name	Company	Exp
1	Apoorva	XYZ Corp	0
4	Anu	XYZ Corp	10
-	-	-		-

Arahan

Dalam syarikat, pekerja yang mempunyai pengalaman bertahun-tahun akan bekerja untuk syarikat yang sama. Jadi jika tiada nilai diluluskan dalam pembolehubah syarikat maka ia secara automatik menetapkan nama syarikat yang sama seperti syarikat. Untuk ini kami menggunakan blok statik.

Kaedah 2: Panggil kaedah statik daripada pembina

Untuk melaksanakan kod permulaan dikongsi, anda boleh mengisytiharkan kaedah statik dalam kelas anda dan memanggilnya daripada pembina.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

public class Way2Class {
   private int value;
   private String name;

   private static void initialize() {
      System.out.println("Common initialization code");
   }

   public Way2Class() {
      initialize();
      value = 0;
      name = "Default";
      System.out.println("No-arg constructor called");
   }

   public Way2Class(int value) {
      initialize();
      this.value = value;
      name = "Value";
      System.out.println("Int constructor called");
   }

   public Way2Class(String name) {
      initialize();
      value = 0;
      this.name = name;
      System.out.println("String constructor called");
   }

   public static void main(String[] args) {
      Way2Class obj1 = new Way2Class();
      Way2Class obj2 = new Way2Class(10);
      Way2Class obj3 = new Way2Class("Hello");
   }
}

Output

Common initialization code
No-arg constructor called
Common initialization code
Int constructor called
Common initialization code
String constructor called

Arahan

Kelas Way2Class dalam gambar ini mengandungi tiga pembina, setiap satunya memanggil kaedah pemula statik () untuk melaksanakan kod permulaan dikongsi. Setiap pembina memanggil fungsi statik initialize() yang ditentukan dalam kelas. Berdasarkan parameter yang diberikan, pembina yang sesuai dipanggil semasa penciptaan objek, dan kaedah statik initialize() digunakan untuk melaksanakan kod permulaan awam.

Perbandingan antara Kaedah 1 dan Kaedah 2

Standard

Kaedah 1

Kaedah 2

Jenis

Asingkan blok statik

Panggil kaedah statik daripada pembina

Kaedah

Guna semula kaedah statik biasa dengan pembina yang berbeza.

Kaedah statik bebas dan pembina biasa.

Logik kaedah

Pembinaan terlebih muatan dan blok statik

Pembinaan terlebih muatan dan blok statik

Kesimpulan

Walaupun pendekatan 2 (kaedah statik dipanggil daripada pembina) memberikan lebih fleksibiliti dalam organisasi dan pewarisan kod, pendekatan 1 (berbilang pembina dengan kod biasa) adalah lebih bebas dan mudah. Pilihan antara dua kaedah bergantung pada keperluan khusus dan pertimbangan reka bentuk projek semasa.

Atas ialah kandungan terperinci Pembina lebih muatan menggunakan blok statik di Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam