Rumah > Java > javaTutorial > Apakah perbezaan antara pembolehubah statik Java dan pembolehubah contoh?

Apakah perbezaan antara pembolehubah statik Java dan pembolehubah contoh?

WBOY
Lepaskan: 2023-05-05 15:40:07
ke hadapan
1742 orang telah melayarinya

Terdapat dua jenis pembolehubah ahli kelas

java: satu pembolehubah diubah suai oleh kata kunci statik, dipanggil pembolehubah kelas atau pembolehubah statik; tanpa pengubahsuaian statik, dipanggil pembolehubah instance.

Perbezaan dalam definisi sintaks: kata kunci statik mesti ditambah sebelum pembolehubah statik, tetapi bukan sebelum pembolehubah contoh.

Perbezaan apabila atur cara dijalankan: pembolehubah instance tergolong dalam atribut objek Suatu objek instance mesti dibuat sebelum pembolehubah instance di dalamnya akan diperuntukkan ruang, dan kemudian pembolehubah instance ini boleh digunakan. Pembolehubah statik bukan kepunyaan objek contoh, tetapi ke dalam kelas, jadi ia juga dipanggil pembolehubah kelas Selagi program memuatkan kod bait kelas tanpa mencipta sebarang objek contoh, pembolehubah statik akan diperuntukkan ruang, dan pembolehubah statik. pembolehubah statik boleh digunakan. Ringkasnya, pembolehubah contoh mesti mencipta objek sebelum ia boleh digunakan melalui objek ini, manakala pembolehubah statik boleh dirujuk terus menggunakan nama kelas.

Sebagai contoh, untuk program berikut, tidak kira berapa banyak objek contoh dicipta, hanya satu pembolehubah staticVar sentiasa diperuntukkan, dan setiap kali objek contoh dicipta, staticVar ini akan dinaikkan sebanyak 1; setiap kali objek instance dicipta, , satu instanceVar akan diperuntukkan, iaitu berbilang instanceVar boleh diperuntukkan dan nilai setiap instanceVar hanya dinaikkan sekali.

public class VariantTest  {  public static int staticVar = 0;  public int instanceVar = 0;  public VariantTest()  {  staticVar++;  instanceVar++;  System.out.println(“staticVar = ”++staticVar “, instanceVar = ” ++instanceVar);  }  }
Salin selepas log masuk

Hanya terdapat satu pembolehubah statik kelas dalam memori Mesin maya Java memperuntukkan memori untuk pembolehubah statik semasa proses memuatkan kelas Pembolehubah statik terletak dalam kawasan kaedah dan dikongsi oleh semua keadaan kelas. Pembolehubah statik boleh diakses terus melalui nama kelas, dan kitaran hayatnya bergantung pada kitaran hayat kelas.

Dan pembolehubah instance bergantung pada instance kelas. Setiap kali kejadian dibuat, mesin maya Java memperuntukkan memori untuk pembolehubah contoh. Pembolehubah contoh terletak di kawasan timbunan dan kitaran hayatnya bergantung pada kitaran hayat contoh.

public class Temp {  int t; //实例变量  public static void main(String args[]){  int t=1; //局部变量  System.out.println(t); //打印局部变量  Temp a= new Temp(); //创建实例  System.out.println(a.t); //通过实例访问实例变量  }  }
Salin selepas log masuk

Hasilnya ialah:

1

0 (pembolehubah ahli mempunyai nilai lalai ​​tetapi pembolehubah tempatan tidak)

Tukar kod kepada:

public class Temp {  static int t; //类变量  public static void main(String args[]){  System.out.println(t); //打印类变量  int t=1; //局部变量  System.out.println(t); //打印局部变量  Temp a= new Temp(); //创建实例  System.out.println(a.t); //通过实例访问实例变量  }  }
Salin selepas log masuk

Hasilnya ialah

0

1

0

Atas ialah kandungan terperinci Apakah perbezaan antara pembolehubah statik Java dan pembolehubah contoh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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