JavaRush /Blog Jawa /Random-JV /Variabel Global ing Jawa: Kapan Gunakake?
Анзор Кармов
tingkat
Санкт-Петербург

Variabel Global ing Jawa: Kapan Gunakake?

Diterbitake ing grup
Hello! Ing artikel iki kita bakal ngomong babagan variabel global, deklarasi lan conto panggunaan sing cocog. Cathetan cilik: kita ora bakal nganggep variabel kelas global, yaiku, sing bisa diakses ing salah sawijining kelas. Kita bakal ngomong babagan variabel global saka kabeh aplikasi - sing bisa diakses ing kabeh aplikasi. Variabel Global ing Jawa: Kapan Gunakake?  - 1

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, blan 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.
Sing terakhir diarani konstanta global. Kanggo nggawe konstanta global, sampeyan kudu nggawe variabel finallan 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: Variabel Global ing Jawa: Kapan Gunakake?  - 2Nanging, 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. Variabel Global ing Jawa: Kapan Gunakake?  - 3Ayo 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 :
  1. Suda readability lan tambah kangelan kanggo mangerteni kode.
  2. Tambah kerumitan pangopènan kode.
  3. Kanggo ngganti siji variabel global, perlu kanggo nganalisa kabeh kode supaya ora nyetel variabel menyang nilai sing ora bener kanggo bagean sistem liyane.
  4. 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.

  5. 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.
  6. 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.
  7. Tes unit nulis dadi luwih angel amarga tes kasebut ora ngerti variabel global sing dibutuhake lan kepiye carane kudu diinisialisasi.
  8. 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.
Nanging iki kabeh ora akurat. Iki minangka katrangan babagan risiko, kemungkinan mundhak kanthi tuwuhing proyek lan nambah jumlah variabel global. Ayo pindhah menyang pro :
  1. Ing proyek cilik, variabel global minangka perkara sing paling gampang kanggo nggawe proyek kasebut.
  2. Kadhangkala rasa wedi nggunakake variabel global nyebabake kerumitan proyek kasebut. Banjur programer miwiti nggawe singleton lan nggunakake pola desain liyane.
  3. 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_LISTlsp). 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.

Umumé, sampeyan ora kudu nggunakake variabel global sing berlebihan; yen bisa, gunakake mung konstanta. Dikandhakake sadurunge nggunakake variabel global ing proyek cilik ora ala. Nanging luwih apik kanggo pangembang pemula ora nggunakake kabeh. Kanggo rong alasan:
  1. 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.
  2. Iku luwih apik kanggo sinau kanggo nindakake tanpa "trik terlarang". Lan kanthi pengalaman, pangerten babagan kapan kudu nggunakake teknik kasebut bakal teka dhewe.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION