JavaRush /Blog Jawa /Random-JV /Pandhuan Kelas Integer Jawa

Pandhuan Kelas Integer Jawa

Diterbitake ing grup
Ing artikel iki kita bakal ngomong babagan kelas Integer. Ayo dipikirake pitakonan iki:
  • apa kelas pambungkus;
  • autopacking / unpacking saka primitif;
  • operasi saka kelas Integer, cara lan konstanta.
Tutorial Kelas Integer Jawa - 1

Kelas Wrapper saka jinis primitif

Kaya sing wis dingerteni, Jawa duwe macem-macem jinis data, sing bisa dipérang dadi rong blok:
  • primitif;
  • referensi.
Ana sawetara jinis data primitif ing Jawa:
  • wilangan bulat - byte, cendhak, int, dawa;
  • angka floating point (nyata) - float, pindho;
  • jinis data logis - boolean;
  • jinis data karakter - char.
Saben jinis data primitif duwe kelas pambungkus dhewe. Jinis data referensi sing mbungkus adhine primitif ing obyek Jawa. Ing ngisor iki jinis data primitif lan kelas pambungkus sing cocog:
Tipe primitif Kelas pambungkus
bait Byte
cendhak Singkat
int Ongko
dawa dawa
ngambang ngambang
pindho pindho
boolean Boolean
char Watak
Ing pangertèn praktis, primitif lan kelas pambungkus duwe akeh sing padha. Umume operasi ditindakake kanthi identik. Nanging, kelas wrapper duwe sawetara ciri sing ora karakteristik primitif. Kaping pisanan, ana kelas: nalika nggarap kelas pambungkus, kita nggarap obyek. Kapindho (kabeh sing nderek saka titik siji), obyek iki bisa null. Katelu, kelas pambungkus nyedhiyakake sawetara konstanta lan cara sing nggawe luwih gampang nggarap jinis data tartamtu. Ing artikel iki kita bakal nliti babagan nggarap kelas Integer.

Integer _

Kelas Integer minangka kelas bungkus saka jinis primitif int. Kelas iki ngemot lapangan siji saka jinis int. Minangka kelas pambungkus, Integer nyedhiyakake macem-macem cara kanggo nggarap ints, uga sawetara cara kanggo ngowahi int dadi String lan String dadi int. Ing ngisor iki kita bakal ndeleng macem-macem conto nggarap kelas. Ayo dadi miwiti karo nggawe. Sing paling umum digunakake (lan paling gampang digunakake) yaiku pilihan nggawe ing ngisor iki:
Integer a = 3;
Yaiku, initialization saka variabel Integer ing kasus iki padha karo initialization saka variabel int. Kajaba iku, variabel Integer bisa diinisialisasi kanthi nilai variabel int:
int i = 5;
Integer x = i;
System.out.println(x); // 5
Ing kasus ing ndhuwur, autopacking dumadi sacara implisit. Kita bakal ngomong luwih akeh babagan ing ngisor iki. Saliyane opsi inisialisasi ing ndhuwur, variabel Integer bisa digawe kaya obyek liyane, nggunakake konstruktor lan tembung kunci anyar:
Integer x = new Integer(25);
System.out.println(x);
Nanging, butuh wektu luwih suwe kanggo nulis lan luwih suwe kanggo maca, mula pilihan iki paling ora umum. Sampeyan bisa nindakake kabeh karo variabel Integer sing bisa ditindakake karo variabel int. Padha bisa dadi:
Lempitan

Integer a = 6;
Integer b = 2;
Integer c = a + b;
System.out.println(c); // 8
Ngurangi

Integer a = 6;
Integer b = 2;
Integer c = a - b;
System.out.println(c); // 4
Multiply

Integer a = 6;
Integer b = 2;
Integer c = a * b;
System.out.println(c); // 12
dibagi

Integer a = 6;
Integer b = 2;
Integer c = a / b;
System.out.println(c); // 3
Tambah

Integer a = 6;
a++;
++a;
System.out.println(a); // 8
Ngurangi

Integer a = 6;
a--;
--a;
System.out.println(a); // 4
Nanging, kanthi kabeh iki, sampeyan kudu ati-ati lan elinga yen Integer minangka jinis data referensi, lan variabel saka jinis iki bisa null. Ing kasus iki (yen variabel null), iku luwih apik kanggo ngempet saka operasi aritmetika (lan liyane kang null ora bode uga). Iki contone:
Integer a = null;
Integer b = a + 1; // Здесь мы упадем с "Exception in thread "main" java.lang.NullPointerException"
System.out.println(b);
Umume operasi perbandingan ditindakake kanthi cara sing padha karo jinis primitif int:
Integer a = 1;
Integer b = 2;

System.out.println(a > b);
System.out.println(a >= b);
System.out.println(a < b);
System.out.println(a <= b);
Output:

false
false
true
true
Operasi mbandhingake rong variabel Integer stands out. Lan titik ing kene yaiku Integer minangka jinis data referensi, lan variabel kasebut nyimpen referensi kanggo nilai, lan dudu nilai kasebut (obyek). Manifestasi kasunyatan iki bisa diamati nalika nglakokake fragmen kode ing ngisor iki:
Integer a = 1;
Integer b = 1;
Integer c = new Integer(1);

System.out.println(a == b); // true
System.out.println(a == c); // false
Asil saka podo pisanan bakal bener, lan kaloro bakal palsu. Iki kedadeyan amarga ing kasus pertama kita mbandhingake rong variabel ("a" lan "b") sing nyimpen referensi menyang obyek sing padha. Lan ing kasus kapindho, kita mbandhingake rong variabel sing nuduhake rong obyek sing beda (nalika nggawe variabel "c" kita nggawe obyek anyar). Ayo menehi conto liyane sing menarik:
Integer a = 1;
Integer b = 1;

Integer x = 2020;
Integer y = 2020;

System.out.println(a == b); // true
System.out.println(x == y); // false
Kaya sing bisa dideleng, asil perbandingan sing pertama bener, lan asil sing nomer loro salah. Iku kabeh babagan cache. Kabeh integer ing kisaran saka -128 nganti 127 kalebu (nilai kasebut bisa disesuaikan) di-cache. Dadi nalika nggawe variabel anyar lan menehi nilai integer antarane -128 lan 127, kita ora nggawe obyek anyar, nanging menehi referensi kanggo obyek sing wis digawe ing cache. Saiki, ngerti kasunyatan iki, conto ing ndhuwur ora katon banget mistis. Variabel a lan b nuduhake obyek sing padha - obyek saka cache. Lan sak initialization saka variabel x lan y, kita nggawe obyek anyar saben wektu, lan variabel iki disimpen referensi kanggo obyek beda. Lan sampeyan ngerti, operator == mbandhingake nilai-nilai variabel, lan nilai-nilai variabel referensi minangka referensi. Kanggo mriksa kesetaraan ing antarane rong variabel Integer kanthi akurat, sampeyan kudu nggunakake (ora ketompo carane ora pati penting bisa diarani) metode sing padha. Ayo nulis maneh conto ing ndhuwur:
Integer a = 1;
Integer b = 1;

Integer x = 2020;
Integer y = 2020;

System.out.println(a.equals(b)); // true
System.out.println(x.equals(y)); // true

Autopacking lan unpacking Integer

Apa auto packing lan unpacking? Nalika nggawe variabel Integer anyar, kita nggunakake konstruksi ing ngisor iki:
Integer a = 2020;
Kanthi cara iki kita nggawe obyek anyar tanpa nggunakake operator tombol anyar. Iki bisa amarga mekanisme autopacking saka jinis primitif int. Prosedur mbalikke dumadi nalika nemtokake variabel int primitif menyang nilai variabel referensi Integer:
Integer a = 2020;
int x = a;
Ing kasus iki, kita katon wis menehi referensi (yaiku referensi kanggo obyek yaiku nilai variabel "a") menyang variabel primitif. Nanging nyatane, amarga mekanisme unpacking otomatis, nilai 2020 ditulis ing variabel "x". Auto-packing / unpacking minangka fenomena sing umum banget ing Jawa. Asring kedadeyan dhewe, kadhangkala tanpa kawruh programer. Nanging sampeyan isih kudu ngerti babagan fenomena iki. Kita duwe artikel menarik babagan topik iki ing Javarush .

Konstanta kelas integer

Kelas Integer nyedhiyakake macem-macem konstanta lan cara kanggo nggarap integer. Ing bagean iki kita bakal nliti sawetara ing laku. Ayo dadi miwiti karo konstanta. Tabel ing ngisor iki nuduhake kabeh konstanta kelas:
Costanta Katrangan
UKURAN Jumlah bit ing sistem nomer rong digit dikuwasani dening jinis int
BYTES Jumlah bita ing sistem nomer rong digit dikuwasani dening jinis int
MAX_VALUE Nilai maksimum sing bisa ditahan jinis int
MIN_VALUE Nilai minimal sing bisa ditahan jinis int
JENIS Ngasilake obyek saka jinis Kelas saka jinis int
Ayo goleki nilai kabeh konstanta kasebut kanthi mbukak kode ing ngisor iki:
public static void main(String[] args) {
        System.out.println(Integer.SIZE);
        System.out.println(Integer.BYTES);
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.TYPE);
}
Akibaté, kita entuk output ing ngisor iki:

32
4
2147483647
-2147483648
int

Metode saka kelas Integer

Saiki ayo goleki kanthi cepet cara sing paling akeh digunakake ing kelas Integer. Dadi, sing "ndhuwur" dipimpin kanthi cara kanggo ngowahi nomer saka senar, utawa ngonversi senar saka nomer. Ayo dadi miwiti karo Ngonversi string menyang nomer. Cara parseInt digunakake kanggo tujuan kasebut , tandha tangan ing ngisor iki:
  • 
    static int parseInt(String s)
Cara iki ngowahi String dadi int. Ayo nduduhake cara kerjane cara iki:
int i = Integer.parseInt("10");
System.out.println(i); // 10
Yen konversi ora bisa - contone, kita ngirim tembung menyang metode parseInt - NumberFormatException bakal dibuwang. Metode parseInt(String s) duwe sedulur sing kakehan:
  • 
    static int parseInt(String s, int radix)
Cara iki ngowahi parameter s dadi int. Parameter radix nuduhake ing sistem nomer sing nomer ing s Originally ditulis, kang kudu diowahi kanggo int. Tuladha ing ngisor iki:
System.out.println(Integer.parseInt("0011", 2)); // 3
System.out.println(Integer.parseInt("10", 8));   // 8
System.out.println(Integer.parseInt("F", 16));   // 15
Metode parseInt ngasilake jinis data primitif int. Cara kasebut duwe analog - metode valueOf . Sawetara variasi saka cara iki mung nelpon parseInt internal. Bentenane saka parseInt yaiku asil saka valueOf bakal dadi Integer, dudu int. Ayo goleki kabeh opsi kanggo metode iki lan conto cara kerjane ing ngisor iki:
  • statis Integer valueOf (int i) - ngasilake Integer kang nilai i;
  • statis Integer valueOf (String s) - padha karo parseInt (String s), nanging asil bakal Integer;
  • statis Integer valueOf(String s, int radix) - padha karo parseInt (String s, int radix), nanging asil bakal Integer.
Tuladha:
int a = 5;
Integer x = Integer.valueOf(a);
Integer y = Integer.valueOf("20");
Integer z = Integer.valueOf("20", 8);

System.out.println(x); // 5
System.out.println(y); // 20
System.out.println(z); // 16
Kita ndeleng cara sing ngidini sampeyan ngowahi String dadi int/Integer. Prosedur mbalikke ditindakake kanthi nggunakake metode toString . Sampeyan bisa nelpon metode toString ing sembarang obyek Integer lan entuk perwakilan string:
Integer x = 5;
System.out.println(x.toString()); // 5
Nanging, amarga kasunyatan manawa metode toString asring diarani sacara implisit ing obyek (contone, nalika ngirim obyek menyang console kanggo dicithak), metode iki jarang digunakake kanthi tegas dening pangembang. Ana uga cara statis toString, sing njupuk parameter int lan ngowahi dadi perwakilan senar. Tuladhane:
System.out.println(Integer.toString(5)); // 5
Nanging, kaya metode toString non-statis, nggunakake metode statis kanthi eksplisit arang banget. Sing luwih menarik yaiku metode statis toString, sing njupuk 2 parameter integer:
  • String statis toString (int i, int radix) - bakal ngowahi i dadi perwakilan string ing sistem nomer radix.
Tuladha:
System.out.println(Integer.toString(5, 2)); // 101
Kelas Integer duwe sawetara cara kanggo nemokake maksimum / minimal rong nomer:
  • statis int max (int ​​a, int b) bakal ngasilake nilai paling gedhe ing antarane variabel sing dilewati;
  • static int min(int a, int b) bakal ngasilake nilai paling cilik ing antarane variabel sing dilewati.
Tuladha:
int x = 4;
int y = 40;

System.out.println(Integer.max(x,y)); // 40
System.out.println(Integer.min(x,y)); // 4

Kesimpulan

Ing artikel iki kita ndeleng kelas Integer. Kita ngomong babagan kelas apa iki lan kelas bungkus apa. Kita nyawang kelas saka sudut pandang praktis. Kita ndeleng conto operasi aritmetika, kalebu operasi perbandingan. We njupuk dipikir ing intricacies mbandingaken loro variabel Integer, lan sinaoni konsep obyek cached. Kita uga nyebutake fenomena packing otomatis / unpacking jinis data primitif. Kajaba iku, kita bisa ndeleng sawetara cara saka kelas Integer, uga sawetara konstanta. Dheweke menehi conto ngonversi nomer saka siji sistem nomer menyang liyane.

Peer

  1. Sinau apa metode kelas Integer liyane (sampeyan bisa sinau ing situs web kanthi dokumentasi resmi ), tulis ing komentar babagan metode sing wis sampeyan sinau (ora kalebu sing diwenehake ing artikel kasebut) sing paling migunani kanggo sampeyan ( bakal digunakake sampeyan paling kerep). Lan uga menehi alasan kanggo pendapat sampeyan.

    PS Ora ana jawaban sing bener ing kene, nanging kegiatan iki bakal ngidini sampeyan sinau kelas kanthi luwih apik.

  2. Ngatasi masalah prasaja cilik kanggo nggabungake materi.

    Kita duwe rong nomer:

    1100001001 - ing sistem angka biner
    33332 - ing sistem angka kuiner

    Sampeyan perlu, nggunakake mung cara saka kelas Integer, kanggo nemtokake maksimum antarane rong nomer diwenehi, lan banjur nuduhake prabédan antarane nilai maksimum lan minimal ing sistem nomer ternary.

  3. Ngonversi nilai Integer maksimal menyang sistem angka octal lan nampilake nomer digit ing nomer asil (ngetung nomer kanthi program).

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