CodeGym /Blog Jawa /Acak /Autoboxing lan Unboxing ing Jawa
John Squirrels
tingkat
San Francisco

Autoboxing lan Unboxing ing Jawa

Diterbitake ing grup
Ing Jawa, fitur primitif lan bungkuse yaiku autoboxing / unboxing. Ayo digali menyang konsep iki. Kaya sing wis kita sinau, basa Jawa minangka basa sing berorientasi obyek. Tegese kabeh program sing ditulis ing Jawa digawe saka obyek. Primitif dudu obyek. Nanging sanajan mangkono, variabel pambungkus bisa diwenehi nilai primitif. Proses iki diarani autoboxing. Kajaba iku, variabel primitif bisa diwenehi obyek pambungkus. Proses iki diarani unboxing. Tuladhane:
public class Main {
   public static void main(String[] args) {
       int x = 7;
       Integer y = 111;
       x = y; // Unboxing
       y = x * 123; // Autoboxing
   }
}
Ing baris 5, kita nemtokake y, yaiku obyek Integer , menyang x primitif . Kaya sing sampeyan ngerteni, kita ora kudu njupuk langkah tambahan: kompiler ngerti yen int lan Integer , sejatine, padha. Iku unboxing. Ana kedadeyan sing padha karo autoboxing ing baris 6: nilai primitif (x * 123) gampang ditugasake menyang obyek y . Iki minangka conto autoboxing. Pramila istilah kasebut kalebu tembung "otomatis": amarga sampeyan ora kudu nindakake apa-apa khusus kanggo nemtokake primitif kanggo obyek pambungkus sing cocog (lan kosok balene). Kabeh kedadeyan kanthi otomatis. Nyaman, ya? :) Kita ndeleng conto liyane babagan kepenak autoboxing / unboxing nalika nggarap metode. Iki amarga argumen metode uga autoboxed lan unboxed. Contone, yen cara njupuk loro obyek Integer minangka input, kita bisa gampang pass biasa int s tinimbang!
public class Main {
   public static void main(String[] args) {

       printNumber(7);// A standard int, not even an int variable
   }

   public static void printNumber(Integer i) {
       System.out.println("You entered the number " + i);
   }
}
Output:
You entered the number 7
Kerjane ing arah liyane uga:
public class Main {
   public static void main(String[] args) {

       printNumber(new Integer(632));
   }

   public static void printNumber(int i) {
       System.out.println("You entered the number " + i);
   }
}
Titik penting sing kudu sampeyan eling yaiku: autoboxing lan unboxing ora bisa digunakake kanggo array!
public class Main {
   public static void main(String[] args) {

       int[] i = {1,2,3,4,5};

       printArray(i);// Error, this won't compile!
   }

   public static void printArray(Integer[] arr) {
       System.out.println(Arrays.toString(arr));
   }
}
Nyoba ngirim array primitif menyang cara sing njupuk array obyek bakal nyebabake kesalahan kompilasi. Ing kesimpulan, ayo mbandhingake maneh primitif lan bungkus.

Primitif:

  • Nduwe kaluwihan kinerja
Bungkus:
  • Ngidini kita supaya ora nglanggar prinsip "kabeh iku obyek", tegese angka, karakter, lan nilai boolean ora nglanggar konsep iki
  • Nggedhekake kemungkinan kanggo nggarap nilai kasebut kanthi menehi cara lan lapangan sing trep
  • Perlu nalika cara mung bisa digunakake karo obyek
Kanggo nguatake apa sing sampeyan sinau, disaranake sampeyan nonton video pelajaran saka Kursus Jawa
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION