Misol. Yuqoridagi Circle sinfida siz atributlarni
sinfdan tashqarida
ko‘rinmas holga keltirish va sinf ma'lumotlariga kirish uchun sinfga yana
ikkita metod qo‘shish orqali ma'lumotlarni yashirishingiz mumkin:
setValues(), x va y-koordinatalarga qiymat
tayinlash
getValues (), x va y koordinatasini olish qiymatlarni olish metodi.
Bu yerda
my_circle obyektining shaxsiy ma'lumotlariga to‘g‘ridan -
to‘g‘ri Circle sinfiga kiritilmagan har qanday metod bilan kirish mumkin
emas. Buning o‘rniga,
setValues() va
getValues() metodlari orqali kirish
kerak.
Abstraksiya. Obyekt biz obyektga tashqaridan kira oladigan metod va
xususiyatlarga ega. Xuddi qurilmadagi biror
tugmani bosishimiz mumkin
bo‘lganidek. Qurilmada juda ko‘p narsalar bor,
bu uning ishlashini
ta'minlaydi, lekin asosiy panelda faqat tugma bor. Bu tugma mavhum
interfeysdir.
Tizimda biz "foydalanuvchini o‘chirish" deyishimiz mumkin. OYD tilida
bu "user.delete()" bo‘ladi - ya'ni biz "user" obyektiga
murojaat qilamiz va
"delete" metodini chaqiramiz. Qiziq tomoni shundaki, o‘chirish qanday sodir
bo‘lishi biz uchun unchalik muhim emas: OYD murojaat paytida bu haqda
o‘ylamaslikka imkon beradi.
Masalan, do‘konda ikkita dasturchi ishlaydi: biri buyurtma modulini,
ikkinchisi yetkazib berish modulini yozadi. "Buyurtma"
obyektida birinchi
dasturchi "bekor qilish" metodiga ega, ikkinchi dasturchi esa yetkazib berish
tufayli buyurtmani bekor qilishi kerak. Ikkinchi dasturni osongina
"order.cancel()" metodi orqali buyurtmani bekor qilish mumkin.
Birinchi
dasturchiga bekor qilishni qanday amalga oshirishi unga qiziq emas: u
qanday xatlar yuboradi, ma'lumotlar
bazasiga nima yozadi, qanday
ogohlantirishlarni ko‘rsatadi, bu “cancel()” metodining ishidir.