Metode getClass(), obyek Kelas, lan introduksi Refleksi - 1

"Hai, Amigo!"

"Saiki wektu kanggo acara utama. Kita bakal kenalan karo kelas Kelas lan ndemek Refleksi.
Kaya sing sampeyan wis ngerti, kabeh sing ana ing Jawa minangka obyek. Lan apa sing dibutuhake obyek? Apa saben obyek sing nemtokake. apa iku kabeh?"

"Kelas a!"

"Bener! Inggih rampung. Saben obyek wis kelas. Nanging bali menyang obyek ... Sawetara obyek tanggung ngemot entitas, nalika liyane mung bantuan ngatur."

"Tipe pungkasan iki kalebu FileOutputStream lan Utas . Nalika nggawe obyek Utas , Utas anyar ora digawe. Utas digawe dening mesin virtual Java sawise wiwitan () cara disebut. Obyek iki mung mbantu ngatur proses."

"Padha karo FileOutputStream : file disimpen ing disk, lan OS ngatur panyimpenan lan akses. Nanging kita bisa sesambungan karo liwat obyek File, sepisan maneh karo bantuan saka mesin virtual Jawa."

“Iya, aku wis ngerti.”

"Dadi, ana kelas khusus sing jenenge Kelas kanggo interaksi karo kelas."

"Sing ora angel ditebak."

"Ya. Saben mesin virtual Java ngemot kelas anyar menyang memori, nggawe obyek Kelas, sing bisa digunakake kanggo entuk informasi tartamtu babagan kelas sing dimuat."

"Saben kelas lan obyek digandhengake karo " Obyek kelas ".

Tuladha Katrangan
Class clazz = Integer.class;
Entuk obyek Kelas Integer.
Class clazz = int.class;
Entuk obyek Kelas int kelas.
Class clazz = "123".getClass();
Entuk obyek Kelas obyek String.
Class clazz = new Object().getClass();
Nemu obyek Kelas obyek Obyek.

"Wah! Apik tenan!"

"Apa sampeyan kelingan yen tembung kelas minangka tembung kunci ing Jawa lan ora bisa digunakake minangka jeneng variabel?"

"Oh ya, aku ngerti, aku ngerti. Aku lali."

"Apa sampeyan wis nggunakake obyek Kelas ing endi wae?"

"Ya, kita nggunakake nalika kita nulis implementasine metode sing padha."

"Ya, sampeyan bisa nggunakake metode getClass () kanggo nyoba apa obyek duwe kelas sing padha."

"Lan apa sampeyan bisa nindakake karo obyek iki?"

"Wah, akeh banget:"

kode Jawa Katrangan
Class s = int.class;
String name = s.getName();
Njaluk jeneng kelas.
Class s = Class.forName("java.lang.String");
Entuk kelas kanthi jeneng.
Object o1 = String.valueOf(1);
Object o2 = 123 + "T";
o1.getClass() == o2.getClass();
Mbandhingake kelas obyek.

"Menarik, nanging ora kaya sing dakkira."

"Sampeyan pengin dadi keren? Ana uga RefleksiRefleksi super keren."

"Apa Refleksi ?"

" Refleksi minangka kemampuan kelas kanggo njupuk informasi babagan awake dhewe. Jawa nduweni kelas khusus:  Field lan Method , sing padha karo kelas Class kanggo kelas. Kaya obyek Kelas ngidini sampeyan entuk informasi babagan kelas, obyek Field nyedhiyakake informasi babagan lapangan. , lan obyek Metode nyedhiyakake informasi babagan metode. Lan deleng apa sing bisa ditindakake:"

kode Jawa Katrangan
Class[] interfaces = List.class.getInterfaces();
Entuk dhaptar obyek Kelas kanggo antarmuka kelas List
Class parent = String.class.getSuperclass();
Entuk obyek Kelas saka kelas induk kelas String
Method[] methods = List.class.getMethods();
Entuk dhaptar metode kelas List
String s = String.class.newInstance();
Nggawe String anyar
String s = String.class.newInstance();
Method m = String.class.getMethod("length");
int length = (int) m.invoke(s)
Entuk metode dawa kelas String lan diarani ing String s

"Wah! Saiki apik tenan!"