Cara nggawe variabel global
Variabel global yaiku variabel sing bisa diakses saka ngendi wae ing aplikasi. Ing tembung liyane, orane katrangan iku kabeh aplikasi. Kanggo nggawe variabel kasebut ing Jawa, sampeyan kudu nggawe variabel statis umum ing kelas umum:public class Example {
public static int a;
public static int b;
public static String str;
}
Variabel a
, b
lan str
- wis dadi global. Kita bisa ngakses langsung saka kelas liyane ing aplikasi:
public class GlobalVarsDemo {
public static void main(String[] args) {
Example.a = 4;
Example.b = 5;
Example.str = "Global String variable value";
System.out.println(Example.a);
System.out.println(Example.b);
System.out.println(Example.str);
}
}
Yen kita mbukak metode kasebut main
, kita bakal weruh output ing ngisor iki:
4
5
Global String variable value
Variabel global bisa dipérang dadi 2 jinis:
- variabel sing bisa diowahi;
- variabel sing mung bisa diwaca.
final
lan menehi nilai nalika nemtokake variabel kasebut:
public class Constants {
public static final double PI = 3.1415926535897932384626433832795;
public static final String HELLO_WORLD_STR = "Hello, World!";
}
Miturut konvensi penamaan Jawa, kabeh konstanta kudu dijenengi nganggo huruf gedhe, misahake tembung kanthi karakter garis ngisor. Dadi, kita wis nggawe konstanta, lan saiki kita ora bakal bisa ngganti nilai-nilai kasebut: Nanging, kita bisa maca nilai-nilai kasebut:
public class HelloWorld {
public static void main(String[] args) {
System.out.println(Constants.HELLO_WORLD_STR);
}
}
Kesimpulan:
Hello, World!
public class ConstantsDemo {
public static void main(String[] args) {
double r = 10;
String message = String.format("Площадь круга с радиусом %f=%f", r, getCircleSquare(r));
System.out.println(message);
}
static double getCircleSquare(double r) {
return Constants.PI * r * r;
}
}
Kesimpulan:
Площадь круга с радиусом 10,000000=314,159265
Apa sampeyan kudu nggunakake variabel global?
Ana akeh artikel ing Internet, pesen utama yaiku: variabel global sing ala, ala lan elek. Apa tenan? Ayo nyoba menehi pro lan kontra saka variabel global supaya saben wong bisa nggawe kesimpulan dhewe. Ayo dadi miwiti karo cons. Coba bayangake aplikasi sing nduweni kelas kanthi variabel global sing bisa diwaca lan diowahi. Sajrone wektu, jumlah kelas ing proyek kasebut, jumlah variabel global lan metode sing nggunakake variabel global, utawa kanthi tembung liya, gumantung marang dheweke. Sajrone wektu, saben variabel global diwaca ing macem-macem bagean sistem kanggo macem-macem tujuan. Nilai variabel bisa dianyari ing macem-macem bagean sistem. Gambar sakabèhé ing donya aplikasi iki dadi luwih rumit, lan iki ndadékaké kanggo cacat ing ngisor iki :- Suda readability lan tambah kangelan kanggo mangerteni kode.
- Tambah kerumitan pangopènan kode.
- Kanggo ngganti siji variabel global, perlu kanggo nganalisa kabeh kode supaya ora nyetel variabel menyang nilai sing ora bener kanggo bagean sistem liyane.
- Tambah kesalahan sing angel banget kanggo debug.
Ayo mbayangno variabel global, macem-macem obyek. Ing salah siji bagéan saka sistem, contone, strings samesthine ing Uploaded iki, lan ing bagean liyane saka sistem, wong mutusaké kanggo nggunakake nomer floating point. Ora mungkin ana sing pengin ngerti iki.
- Jeneng variabel bisa uga padha yen sampeyan nggunakake variabel global ing kode sampeyan, uga sawetara perpustakaan sing uga nggunakake variabel global. Iki bisa nyebabake kesalahan ing sisih aplikasi lan ing sisih perpustakaan sing sampeyan gunakake.
- Nambah konektivitas antarane macem-macem bagean sistem sing nggunakake variabel global. Kosok baline, sampeyan kudu ngupayakake kopling kode kasebut. Iku luwih apik kanggo duwe akeh subsistem cilik longgar disambungake kanggo saben liyane saka duwe siji bab dibalèkaké. Amarga luwih gampang otak kanggo ngatasi sawetara perkara sing prasaja tinimbang karo siji perkara sing rumit lan mbingungake.
- Tes unit nulis dadi luwih angel amarga tes kasebut ora ngerti variabel global sing dibutuhake lan kepiye carane kudu diinisialisasi.
- Ing aplikasi multithreaded, panggunaan variabel global kanthi benang sing beda-beda nyebabake paningkatan kesalahan sing angel didebug lan nambah kerumitan proyek. Amarga iki, perlu kanggo ngatur akses menyang variabel kasebut kanthi luwih bener, nglengkapi sinkronisasi lan kunci. Iki bisa nyebabake sirkuit cendhak ing mangsa ngarep. Contone, Utas A wis ngunci variabel X kanggo karyane, lan Utas B wis ngunci variabel Y kanggo karyane, lan Utas A saiki mbutuhake variabel Y, lan Utas B mbutuhake variabel X. Akibaté, program bakal digantung.
- Ing proyek cilik, variabel global minangka perkara sing paling gampang kanggo nggawe proyek kasebut.
- Kadhangkala rasa wedi nggunakake variabel global nyebabake kerumitan proyek kasebut. Banjur programer miwiti nggawe singleton lan nggunakake pola desain liyane.
- Ing pemrograman, sampeyan asring kudu ngandelake sawetara nilai sing ora bisa diganti.
Sing paling wajar yaiku nulis nilai kasebut minangka konstanta, amarga mung konstanta sing njamin yen nilai variabel ora bakal owah saka wektu. Konstanta kasebut bisa ditemokake ing kabeh wektu (
Integer.MAX_VALUE
,Integer.MIN_VALUE
,Boolean.TRUE
,Collections.EMPTY_LIST
lsp). Nanging pemrograman ora mung nggunakake perpustakaan standar. Asring kedadeyan yen sampeyan kudu nulis sawetara jinis logika unik, sing kudu gumantung ing konstanta unik sampeyan dhewe. Mulane kadhangkala nggunakake konstanta (variabel global mung diwaca) pancen nggampangake urip.
- Kabeh sing ditulis pangembang pemula sejatine minangka proyek cilik. Lan nggunakake variabel global ing proyek dheweke bakal mulang dheweke nggunakake variabel global ing endi wae.
- Iku luwih apik kanggo sinau kanggo nindakake tanpa "trik terlarang". Lan kanthi pengalaman, pangerten babagan kapan kudu nggunakake teknik kasebut bakal teka dhewe.
GO TO FULL VERSION