CodeGym /Blog Jawa /Acak /Lingkup Jawa
John Squirrels
tingkat
San Francisco

Lingkup Jawa

Diterbitake ing grup
Kita kabeh ngerti yen negara duwe wates lan hukum dhewe. Undhang-undhang ing negara kasebut ana ing wates. Uga ing negara kasebut, contone, organisasi, kayata sekolah utawa museum, sing duwe aturan lokal dhewe. Dheweke ora mbantah angger-angger negara, nanging mung ing kerangka organisasi sing ditemtokake. Semono uga ing pamrograman. Dadi ing pemrograman, lan utamane ing basa Jawa, ana istilah "ruang lingkup". Iki nuduhake area program ing ngendi data tartamtu, kayata variabel utawa metode, bisa digunakake. Ing artikel iki, kita bakal nemtokake apa ruang lingkup kanggo variabel ing Jawa lan carane nemtokake.

Cakupan Jawa umume

Napa perlu kanggo misahake ruang lingkup variabel lan metode? Kasunyatane, kadhangkala program gedhe banget lan bisa uga angel kanggo nglacak siji utawa variabel liyane. Kajaba iku, ing proyèk-proyèk gedhe, jeneng sing jelas saka variabel sing dikarepake supaya jelas kanggo apa. Cakupan khusus ngidini sampeyan duwe macem-macem variabel kanthi jeneng sing padha ing macem-macem bagean program. Kode kuwi luwih gampang kanggo njaga lan maca. Ruang lingkup Java nemtokake manawa variabel utawa metode tartamtu bisa diakses ing program. Sedhela:
  • Variabel sing diumumake ing metode katon saka wiwitan deklarasi nganti pungkasan metode (skop metode).
  • Variabel sing diumumake ing blok kode ana nganti pungkasan blok kode kasebut.
  • Variabel sing minangka argumen metode ana nganti pungkasan metode.
  • Variabel kelas/obyek ana kanggo umur obyek sing ngemot. Visibilitas kasebut diatur dening modifikasi akses khusus.
  • Variabel kelas statis ana kabeh wektu program mlaku. Visibilitas uga ditemtokake dening modifikasi akses.

Lingkup Tingkat Metode

Variabel apa wae sing diumumake ing metode, kalebu argumen, ora bisa diakses ing njaba metode kasebut. Kabeh variabel sing diumumake ing metode katon saka wiwitan deklarasi nganti pungkasan metode. Ing ngisor iki minangka conto ruang lingkup variabel metode:

public class JScopeTest1 {


   public static void main(String[] args) {

       System.out.println(myMethod(5));
       System.out.println(myMethod(17));

   }
   public static int  myMethod(int arg) {
       int secondArg = 100; //local method variable
       return secondArg + arg;
   }
}
Ing kene kita duwe secondArg , variabel lokal utawa argumen metode. Kita ora bisa nggunakake variabel iki ing njaba metode myMethod utawa sadurunge diumumake. Yen variabel minangka argumen fungsi, mula katon ing kabeh awak metode iki. Ing conto ing ndhuwur, kita entuk rong argumen kasebut: arg ing myMethod lan args ing metode utama.

Lingkup Tingkat Kelas

Lingkup Tingkat Kelas (Variabel Instance) - variabel apa wae sing diumumake ing kelas kasedhiya kanggo kabeh metode kelas kasebut. Gumantung ing modifier akses (yaiku umum utawa pribadi), kadhangkala bisa diakses ing njaba kelas. Dadi yen variabel minangka variabel kelas, mula diikat menyang obyek tartamtu lan ana sajrone ana obyek saka kelas iki. Yen ora ana obyek, mula ora ana salinan variabel kasebut. Variabel kasebut katon saka kabeh metode kelas, preduli manawa diumumake sadurunge utawa sawise. Saben obyek nduweni variabel bebas saka obyek liyane. Akses menyang variabel saka cara statis ora bisa ditindakake.

Tuladha kode


public class Student {
   
//class level variables
   public String surname;
   String name;
   String secondName;
   private Long birthday; // Long instead of long is used by Gson/Jackson json parsers and various orm databases

   public Student(String surname, String name, String secondName, Date birthday ){
       this.surname = surname;
       this.name = name;
       this.secondName = secondName;
       this.birthday = birthday == null ? 0 : birthday.getTime();
   }

   @Override
   public int hashCode(){
       //TODO: check for nulls
       //return surname.hashCode() ^ name.hashCode() ^ secondName.hashCode() ^ (birthday.hashCode());
       return (surname + name + secondName + birthday).hashCode();
   }
   @Override
   public boolean equals(Object other_) {
       Student other = (Student)other_;
       return (surname == null || surname.equals(other.surname) )
               && (name == null || name.equals(other.name))
               && (secondName == null || secondName.equals(other.secondName))
               && (birthday == null || birthday.equals(other.birthday));
   }
}
Surname , jeneng , secondName lan ulang tahun minangka variabel Instance.

Cakupan Blok

Yen variabel ditetepake / diumumake ing sawetara blok kode, banjur ana nganti pungkasan blok kode kasebut. Biasane, variabel kasebut ana ing antarane kurung kriting sing ditetepake. Kerep banget ruang lingkup blok bisa dadi variabel loop. Variabel sing diumumake ing kondisi loop ora bisa diakses ing njaba loop, kajaba sampeyan wis nemtokake sadurunge.

public class JScopeTest2 {
   public static void main(String[] args) {
       for (int i = 0; i < 10; i++) {
           int sum = 0;
           sum = sum + i;
       }
      
       int sum = 1;
       System.out.println(sum);
   }
}
Loro-lorone jumlah pisanan lan variabel i diumumake ing daur ulang lan ora ana ing njaba daur ulang iki. Nanging jumlah kapindho diumumake ing njaba loop supaya variabel tartamtu iki bakal dicithak.

Variabel statis

Yen variabel diumumake minangka statis (ditandhani nganggo tembung kunci statis), banjur ana sajrone kelase ana. Biasane, JVM ngemot kelas menyang memori nalika nggunakake pisanan, nalika variabel statis diinisialisasi.

import java.util.Date;

public class Student {
   public static int today = 2022;
   String surname;
   String name;
   String secondName;
   Long birthday; // Long instead of long is used by Gson/Jackson json parsers and various orm databases

   public Student(String surname, String name, String secondName, Date birthday ){
       this.surname = surname;
       this.name = name;
       this.secondName = secondName;
       this.birthday = birthday == null ? 0 : birthday.getTime();
   }

 
   public static void main(String[] args) {
       System.out.println(today);
   }

}
Sampeyan ora kudu nggawe conto anyar saka kelas Siswa kanggo nggunakake variabel dina statis . Ing kene "2022" bakal dicithak.

Akses modifiers

Jawa nduweni 4 akses modifiers kanggo matesi akses menyang cara utawa variabel. Sampeyan bisa nggunakake ing njero kelas, dudu metode ing njero.
  • pribadi iku modifier paling mbatesi. Iki mbatesi akses menyang metode lan variabel menyang kelas sing diumumake. Yen ora perlu nggunakake cara utawa variabel tartamtu ing njaba kelas, gunakake pribadi. Variabel kelas biasane pribadi ing Jawa.

  • Yen ora ana modifier akses sing ditemtokake, metode utawa variabel bakal nampa modifier standar . standar ngidini akses mung saka paket saiki.

  • modifier dilindhungi ngidini akses kanggo cara utawa variabel mung saka ing paket saiki, kajaba iku diakses liwat kelas anak njaba paket.

  • publik minangka modifier paling ora mbatesi. Iki ngidini sampeyan ngakses kelas, cara utawa variabel ora mung saka kelas sing diumumake, nanging uga saka njaba. Modifier iki asring digunakake.

Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION