Rumah  >  Artikel  >  Java  >  Bagaimana untuk memulakan kelas dan objek dalam Java

Bagaimana untuk memulakan kelas dan objek dalam Java

王林
王林ke hadapan
2023-04-18 11:55:021524semak imbas

Pertama, mari kita lihat kod berikut. Ini adalah cara pemeriksaan yang sangat klasik.

public class InitField {      public static void main(String[] args) {          SuperInitField p = new SuperInitField();          SuperInitField c = new SubInitField();      }  }   class SuperInitField {      public SuperInitField() {          System.out.println("parent");      }      static {          System.out.println("static parent");      }   }   class SubInitField extends SuperInitField {      public SubInitField() {          System.out.println("child");      }      static {          System.out.println("static child");      }  }

Sama ada anda boleh menulis jawapan yang betul dengan cepat atau tidak, mari letakkan atur cara ini dahulu dan fahami prinsip permulaan mesin maya Java.

JVM memasang, menyambung dan memulakan jenis Java supaya jenis itu boleh digunakan dengan menjalankan program Java. Kitaran hayat jenis adalah seperti yang ditunjukkan di bawah:

Bagaimana untuk memulakan kelas dan objek dalam Java

Pemuatan dan sambungan mesti diselesaikan sebelum pemula.

Fasa permulaan kelas adalah terutamanya untuk memberikan nilai awal yang betul kepada pembolehubah kelas. Nilai awal "betul" di sini merujuk kepada nilai permulaan yang pengaturcara menjangkakan pembolehubah kelas ini ada. Nilai permulaan yang betul diberikan melalui pernyataan permulaan pembolehubah kelas atau pernyataan permulaan statik. Memulakan kelas melibatkan dua langkah:

1) Jika kelas mempunyai superclass langsung, dan superclass langsung belum dimulakan, mulakan superclass langsung terlebih dahulu.

2) Jika kelas mempunyai kaedah permulaan kelas, jalankan kaedah ini.

Bilakah kelas akan dimulakan? Spesifikasi mesin maya Java dengan tegas mentakrifkan masa permulaan kelas: dimulakan apabila ia digunakan secara aktif.

Jadi apakah situasi yang memenuhi kriteria untuk kegunaan aktif oleh ***? Spesifikasi Mesin Maya Java menerangkan perkara ini, iaitu:

1) Buat contoh baharu kelas; 2) Panggil kaedah statik kelas; ) Memanipulasi medan statik kelas atau antara muka (kecuali medan akhir); 6) Tentukan kelas sebagai kelas permulaan apabila mesin maya Java bermula.

Kecuali untuk enam situasi di atas, semua kaedah lain digunakan secara pasif dan tidak akan menyebabkan permulaan kelas.

Setelah kelas dimuatkan, disambungkan dan dimulakan, ia sedia untuk digunakan. Sekarang mari kita fokus pada instantiasi objek. Penentuan objek dan permulaan adalah aktiviti dalam peringkat awal kehidupan objek.

Pengkompil Java menjana sekurang-kurangnya satu kaedah permulaan contoh untuk setiap kelas yang disusunnya, iaitu kaedah (). Setiap pembina kelas dalam kod sumber mempunyai kaedah () yang sepadan. Jika kelas tidak mengisytiharkan mana-mana pembina secara eksplisit, pengkompil menghasilkan pembina tanpa hujah lalai untuk kelas Pembina lalai ini hanya memanggil pembina tanpa hujah kelas induk.

Mungkin terdapat tiga jenis kandungan kod yang disertakan dalam kaedah (): memanggil kaedah () yang lain untuk memulakan pembolehubah contoh dan membina kod badan kaedah.

Jika pembina secara eksplisit bermula dengan memanggil pembina lain dalam kelas yang sama, kandungan yang disertakan dalam badan kaedah () yang sepadan ialah:

Panggilan ke < ;init>() kaedah kelas ini;

melaksanakan bytecode badan kaedah yang sepadan dengan kaedah pembina.


    Jika pembina tidak bermula dengan memanggil pembina lain kelasnya sendiri, dan objek itu bukan objek Objek, maka kandungan kaedah () ialah:
  1. Panggilan ke kaedah () kelas induk
  2. Kod bait mana-mana kaedah permulaan pembolehubah contoh; 🎜>

melaksanakan bytecode badan kaedah yang sepadan dengan kaedah pembinaan.
  1. Adakah penjelasan di atas membantu anda memahami pemulaan jenis Java?
  2. Baiklah, mari analisa permulaan kod sekali lagi:

  3. Sekarang anda sepatutnya mempunyai pemahaman umum tentang prinsip permulaan kelas Java, kemudian saya akan meninggalkannya untuk latihan Soalan , tuliskan hasil menjalankan kod berikut.

Atas ialah kandungan terperinci Bagaimana untuk memulakan kelas dan objek dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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