Java'da Instance Field bayonoti

Men OOP ni osganman va Java bilan juda ko'p o'ynaganman. Muammolarimdan biri muayyan sinf uchun maxsus namunaviy maydonga muhtoj ekanligimga bog'liq. Ijobiy qoidalar mavjud emasmi yoki yo'qmi deb, men foydalanishim kerak bo'lgan bosh qoida bormi?

Rahmat.

0

4 javoblar

Xullas, o'zingizdan so'rangki, bu mantiqan ob'ektning bir misolining holatining qismidir. Ob'ektning umrining barcha muddati uchun tegishli bo'lgan ob'ekt yoki u faqat bitta usulda qo'llaniladigan narsa (bu holda mahalliy o'zgaruvchan bo'lishi kerak) degan narsa bormi? Yoki u sinfning o'zi uchun amalda (u holda bu statik bo'lishi kerak)?

Agar siz ishonchingiz komil bo'lmagan ba'zi misollarni keltirsangiz, bu yordam beradi.

(Men bu erda tanlov o'zgarmaydigan - statik, namunali yoki mahalliy bo'lishi kerak deb hisoblayman.) Instance o'zgaruvchilari odatda har doim maxsus bo'lishi kerak :)

1
qo'shib qo'ydi

Ob'ektning tabiiy bir qismi yoki biror narsalar ob'ektni muntazam ravishda bajarishi kerak bo'lsa, demak, uni har jihatdan atributga aylantiradi. Agar u doimiy bo'lsa, uni ochiq-oydin sinfga aylantirishi kerak (yoki aksincha, doimiy: R). Boshqacha aytganda, "jamoatchilikning statik yakuniy yakuniy nashrlari"

Jamoat namunasi o'zgaruvchilar tez-tez ishlatilmaydi, chunki odatda messier kodiga olib keladi. Masalaning o'zgaruvchilari (yoki atributlari) oldindan aytilganidek, ob'ektlar holati sifatida tasavvur qiling. Odatdagidek, atrofdagilarni jiddiy almashtirish o'rniga, operatsiyalarni bajarish orqali ob'ektlar holatini o'zgartirish aniq. Omad.

1
qo'shib qo'ydi

"Avoid public fields except for constants. (Many of the examples in the tutorial use public fields. This may help to illustrate some points concisely, but is not recommended for production code.) Public fields tend to link you to a particular implementation and limit your flexibility in changing your code." Controlling Access to Members of a Class

0
qo'shib qo'ydi

Ob'ektga yo'naltirilgan dasturlashni o'rganayotganda uni haqiqiy dunyo kontseptsiyalarini kod sifatida modellash usuli deb biling. Ismlar ob'ektga aylanadi; va otlar tomonidan, yoki ular tomonidan bajarilgan harakatlar uslubga aylanadi. Instance o'zgaruvchilari - bu otlarning xususiyatlari. Misol uchun, Avtomobil ni ifodalovchi sinfingiz bo'lsa, slamOnTheBreaks() break kodlaridagi slamga qo'ng'iroq qilish uchun Driver Car ichida bir nechta o'rindiqlar bormi? Shunday qilib, bir misol o'zgaruvchilar int numberOfSeats; bo'lishi mumkin.

Masalaning o'zgaruvchilari bilish kerak bo'lgan, o'zgaruvchan o'zgaruvchan asosda o'ylang. NumberOfSeats ni yaratish orqali, Driver ni avtomobilda o'rindiqlarning sonini o'zgartirishga imkon beradi. Ular faqat mashina ichida qancha joy mavjudligini bilishlari kerak, ular avtomobilga kirganda bilib olishlari mumkin, aksincha, public int getNumberOfSeats() usulini chaqirishadi.

Danny ta'kidlaganidek, hikoya barqaror uchun farq qiladi. Agar qiymat doimiy bo'lsa, u dasturning bajarilish davomiyligi uchun doimiy bo'lib qoladi, masalan, agar istasangiz Driver Bob barcha kodlar uchun faqat Driver Siz yaratgan Avtomobil va yuk mashinalari moslamalarni Bob ga ega bo'lishingiz kerak.) Avtomobil va yuk mashinalari o'rtasida hech qanday meros olmagan holda) va Truck .

0
qo'shib qo'ydi