Rumah > Java > javaTutorial > teks badan

Alias ​​Jawa

PHPz
Lepaskan: 2024-08-30 15:45:29
asal
834 orang telah melayarinya

Di Java, apabila berbilang rujukan digunakan untuk merujuk kepada objek yang sama, ia biasanya dirujuk sebagai "alias." Isu dengan alias ialah apabila pengguna menulis kepada objek tertentu dan pemilik, untuk beberapa rujukan lain , tidak mengharapkan objek itu berubah. Di sini, kod yang termasuk aliasing boleh mengelirukan dengan cepat, dan sangat membosankan untuk nyahpepijat juga. Mari kita lihat cara Java Alias ​​berfungsi.

IKLAN Kursus Popular dalam kategori ini JAVA MASTERY - Pengkhususan | 78 Siri Kursus | 15 Ujian Olok-olok

Mulakan Kursus Pembangunan Perisian Percuma Anda

Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain

Bagaimana alias berfungsi dalam Java?

Seperti yang telah kita bincangkan sebelum ini, aliasing berlaku apabila berbilang rujukan dikaitkan dengan objek yang sama. Ini juga bermakna terdapat beberapa alias untuk lokasi yang boleh diubah suai dan alias ini mempunyai beberapa jenis.

Mari kita ambil contoh. x dan y ialah dua nama pembolehubah yang mempunyai dua jenis, X dan Y. Y memanjangkan X.

Y[] y = new Y[10];
X[] x = y;
x[0] =  new X();
Y[0].func1();
Salin selepas log masuk

Dalam ingatan juga, kedua-duanya menunjuk ke lokasi yang sama.

Alias ​​Jawa

Lokasi memori yang ditunjuk ditunjuk oleh x dan juga y. Walau bagaimanapun, objek sebenar yang disimpan memilih kaedah untuk dipanggil semasa masa jalan.

Mari kita lihat contoh lain.

Rectangle b1 = new Rectangle (0, 0, 50, 150);
Rectangle b2 = b1;
Salin selepas log masuk

Kedua-dua b1 dan b2 merujuk kepada objek yang sama, atau kita boleh mengatakan bahawa objek yang diberikan mempunyai dua nama, seperti b1 dan b2. Sama seperti orang yang mempunyai dua nama, objek juga boleh mempunyai dua nama.

Apabila dua pembolehubah beralias hadir, perubahan yang menyebabkan satu pembolehubah turut mencerminkan yang lain, seperti ditunjukkan di bawah.

System.out.println (b2.width);
b1.grow (40, 40);
System.out.println (b2.width);
Salin selepas log masuk

Apabila melaksanakan kod, anda akan melihat bahawa perubahan yang telah disebabkan pada satu segi empat tepat telah berlaku dalam segi empat tepat kedua juga. Ini adalah salah satu perkara utama yang perlu diberi perhatian untuk Alias ​​di Jawa.

Contoh Java Alias

Berikut ialah beberapa contoh program pada Java Alias.

Contoh #1

Kod:

//class X
class X {
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
}
//Class Y that extends the class X
class Y extends X
{
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
//function 2
public void func2()
{
System.out.println("called sample function 2");
}
}
//main class
public class AliasExample {
//main method
public static void main(String[] args) {
Y[] y = new Y[10];
X[] x = y;
x[0] =  new X();
y[0].func1();
}
}
Salin selepas log masuk

Output:

Alias ​​Jawa

Bagaimana ini berlaku? Apa yang perlu diubah? Adakah mungkin untuk menyelesaikannya?

Ya!! Satu-satunya sebab untuk pengecualian ini ialah Java menguruskan alias semasa runtime. Hanya semasa masa larian ia akan dapat mengetahui bahawa yang pertama harus menjadi objek Y dan bukannya X.

//class X
class X {
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
}
//Class Y that extends the class X
class Y extends X
{
//function 1
public void func1()
{
System.out.println("called sample function 1");
}
//function 2
public void func2()
{
System.out.println("called sample function 2");
}
}
//main class
public class AliasExample {
//main method
public static void main(String[] args) {
Y[] y = new Y[10];
X[] x = y;
x[0] =  new Y();
y[0].func1();
}
}
Salin selepas log masuk

Output:

Alias ​​Jawa

Contoh #2

Kod:

//main class
public class AliasExample {
//main method
public static void main(String[] args) {
//create two different arrays with same value
int a= 87;
int b=87;
//checks whether a and b are equal
System.out.println(a == b);
//assign b equal to a
b=a;
//checks whether a and b are equal
System.out.println(a == b);
}
}
Salin selepas log masuk

Output:

Alias ​​Jawa

Apakah yang akan berlaku jika dua tatasusunan, a dan b, digunakan dan bukannya pembolehubah integer?

//main class
public class AliasExample {
//main method
public static void main(String[] args) {
//create two different arrays with same value
int []a = {81, 54, 83};
int []b = {81, 54, 83};
//checks whether a and b are equal
System.out.println(a == b);
//assign b equal to a
b=a;
//checks whether a and b are equal
System.out.println(a == b);
}
}
Salin selepas log masuk

Output:

Alias ​​Jawa

Dalam program ini, dua tatasusunan, a dan b, dicipta dalam langkah pertama. Kemudian, sama dengan program di atas, a dan b semak sama ada ia sama. Semasa melaksanakan kod, dapat dilihat bahawa output untuk semakan pertama adalah palsu, dan output untuk semakan kedua adalah benar. Ini kerana Java Alias ​​berfungsi.

Kesimpulan

Kelemahan alias ialah apabila pengguna menulis pada objek tertentu dan pemilik, untuk beberapa rujukan lain, tidak meneka objek itu akan berubah.

Atas ialah kandungan terperinci Alias ​​Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan