KodeGym/Kursus Java/Inti Java/Memuat kelas, data statis...

Memuat kelas, data statis...

Level 5, Pelajaran 7
Tersedia

"Halo, Amigo! Kudengar Rishi menjelaskan sesuatu yang baru dan menarik untukmu?!"

"Benar, Ki."

"Topik saya tidak akan kalah menarik. Saya ingin memberi tahu Anda tentang bagaimana kelas dimuat ke dalam memori."

Kelas di Java adalah file pada disk yang berisi bytecode, yang merupakan kode Java yang dikompilasi.

"Ya saya ingat."

Mesin Java tidak memuatnya jika tidak perlu. Segera setelah ada panggilan ke suatu kelas di suatu tempat di dalam kode, mesin Java akan memeriksa apakah kelas tersebut dimuat. Dan jika tidak, maka itu memuat dan menginisialisasi.

Inisialisasi kelas melibatkan pemberian nilai ke semua variabel statisnya dan memanggil semua blok inisialisasi statis.

"Kelihatannya mirip dengan memanggil konstruktor pada suatu objek. Tapi apa itu blok inisialisasi statis?"

"Jika Anda perlu mengeksekusi kode kompleks (misalnya, memuat sesuatu dari file) untuk menginisialisasi objek, kami dapat melakukannya di konstruktor. Namun, variabel statis tidak memiliki kesempatan ini. Namun karena masih diperlukan, Anda dapat tambahkan blok atau blok inisialisasi statis ke kelas. Mereka pada dasarnya setara dengan konstruktor statis."

Begini tampilannya:

Kode Apa yang sebenarnya terjadi
class Cat
{
public static int catCount = 0 ;
public static String namePrefix;

static
{
Properties p = new Properties();
p.loadFromFile("cat.properties");
namePrefix = p.get("name-prefix");
}

public static int maxCatCount = 50;

static
{
Properties p = new Properties();
p.loadFromFile("max.properties");
if (p.get("cat-max") != null)
maxCatCount = p.getInt("cat-max");
}

}
class Cat
{
public static int catCount;
public static String namePrefix;
public static int maxCatCount;

//Static constructors aren't allowed in Java,
//but if they were, everything
//would look like this
public static Cat()
{
catCount = 0;

Properties p = new Properties();
p.loadFromFile("cat.properties");
namePrefix = p.get("name-prefix");

maxCatCount = 50;

Properties p2 = new Properties();
p2.loadFromFile("max.properties");
if (p2.get("cat-max")!=null)
maxCatCount = p2.getInt("cat-max");
}
}

Ini sangat mirip dengan apa yang terjadi ketika konstruktor dipanggil. Saya bahkan menulisnya sebagai konstruktor statis (tidak ada).

"Ya, saya mengerti."

"Sangat bagus."

4
Tugas
Inti Java,  level 5pelajaran 7
Terkunci
Code entry
Your attention, please! Now recruiting code entry personnel for CodeGym. Turn up your focus, let your fingers relax, read the code, and then... type it into the appropriate box. Code entry is far from a useless exercise, though it might seem so at first glance: it allows a beginner to get used to and remember syntax (modern IDEs seldom make this possible).
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar