Java dasturlash tilida eng oddiy dastur


Sinf hadlaridan foydalanish huquqi



Download 167,47 Kb.
bet18/26
Sana25.02.2022
Hajmi167,47 Kb.
#463371
1   ...   14   15   16   17   18   19   20   21   ...   26
Bog'liq
1 dedlayn Java dasturlash tilida eng oddiy dastur

2.7. Sinf hadlaridan foydalanish huquqi.

Oldin ko’rib chiqilgan masalalarda sinfdan tashqari maydon va metodlardan foidalanish huquqi muommosiz amalga oshirildi. Haqiqatda esa sinfdan tashqari, yani unga kirmaydigan maydon va metodlardan foidalanish huquqi hamma vaqat ham berilavermaydi. Javada maydon va metodlardan foidalanishga ruhsat berilganiga qarab sinfning hamma hadlarini uch guruhga bo’lish mumkin. Bular ochiq, himoyalangan, yopiqbolishi mumkin. Bular bilan asta sekin tanishib chiqamiz. Yuqorida ko’rib o’tilgan misollarda sinfning hamma maydon va metodlari ochiq old abo’lgan. Bu degani sinfdan tashqarida foidalanishga ruhsat berilgan edi. Shunday qilib sinfning ochiq hadlari bu sinfdan tashqarida foidalanishga ruhsat berilishidir.


Agar maydon va metodlar yopiq bo’lsa yuqorda qayt etilgan amallarni bajarishning iloji yoq. Yopiq maydonlarga sing metodlari bilan murojat qilish mumkin, ammo sinfda tashqari yopiq maydonlarga murojat qilib bo’lmaydi. Sinf metodlari ham huddi shunday, sinfning yopiq metodlari faqat shu sinf metodlari bilan chaqirilishi mumkin, lekin sinfdan tashqari murojat qilishning imkoni yoq.
Sinfning yopiq va humoyalangan maydonlari va metodlaridan farqi faqat merosga ko’rinish mumkin. Agar gap meros haqida ketsa, demak sinfning himoyalangan maydon va metodlari haqida gapiriladi.Yuqorida aytib o’tilgan holatlar sinfning yopiq va himoyalangan maydon va metodlari bilan bog’liq vaziyatni to’liq yoritib bermaydi. Bu savolga meros olishlarni o’rgannanimizda qaytamiz.
Himoyalangan maydon va metodlar darajasini aniqlash uchun mos ravishda public, privet, protected kalit so’zlari aniqlanadi. Himoyalanganlik identifikatori sinfning har bir maydon va metodlarida alohida ko’rsatiladi. Bu yerda Java tilining C++ tilidan farqi ko’zda tutuladi. Agar himoyalanganlik identifikatori umuman ko’rsatilmagan bo’lsa bu maydon yoki metod ochiq hisoblanadi. Aynan shu xususiyatni oldingi sinflar uchun qo’llaganmiz. Quyida biz ochiq va yopiq hadlar to’g’risida misol keltiramiz:

class Arifmetika {


public int a; //ochiq maydon
public int b; //ochiq maydon
public void setA(int a1){ //ochiq metod
a=a1;
}
public void setB(int b1){//ochiq metod
b=b1;
}
public int getA(){ //ochiq metod
return a;
}
public int getB(){ //ochiq metod
return b;
}
public int qoshish(){
return a+b;
}
}

public class Proba{


public static void main(String[] arg){
Arifmetika obj=new Arifmetika();
obj.setA(15);
obj.setB(5);
System.out.println(obj.getA()+” va “+obj.getB()+” sonlarining yig’indisi: “+obj.qoshish());
}
}
Arifmetika sinfida maydon va metodlari ochiq holda e’lon qilingan. Sinfdagi setA(int a1) va setB(int b1) metodlari qiymat qaytarmaydigan parametrli metodlardir. Bu metodning vazifasi sinfdagi a,b maydonlarga mos ravishda qiymat beradi. Sinfning getA() va getB() metodlari qiymat qaytaruvchi parametrsiz metoddir, sinfdagi a,b maydonlarni qiymatini so’ralgan joyga qaytaradi.

Yuqoridagi misolni yana ko’rib chiqamiz:


class Arifmetika {


private int a; //yopiq maydon
private int b; //yopiq maydon
private void showField(){ //yopiq metod
System.out.println(a+” “+b);
}
public void setA(int a1){ //ochiq metod
a=a1;
}
public void setB(int b1){ //ochiq metod
b=b1;
}
public int getA(){ //ochiq metod
return a;
}
public int getB(){ //ochiq metod
return b;
}
public int qoshish(){ //ochiq metod
return a+b;
}
}

public class MainClass {


public static void main(String[] arg){
Arifmetika obj=new Arifmetika();
obj.setA(15);
obj.setB(5);
obj.showField() //bu xato
System.out.println(obj.getA()+” va “+obj.getB()+” sonlarining yig’indisi: “+obj.qoshish());
}
}

Yopiq maydonlar va yopiq metodlarni boshqa sinfda murojat qilish imkoniyati mavjud emas, faqat yopiq maydonlarni shu sinfdagi metodlar orqali murojaat qilish mumkin. Ko’rib turganingizdek obj.showField() metodi yopiq metodir. Yanada yaxshiroq tushunib olish uchun soddaroq misol keltiramiz:


class MyClass{


private int a; //yopiq maydon
private int b; //yopiq maydon
public void setAB(int a1,int b1){ //ochiq metod
a=a1;
b=b1;
}
public void show(){ //ochiq metod
showField();
}
private void showField(){ //yopiq metod
System.out.println(a+” “+b);
}
}
public class Proba{
public static void main(String[] arg){
MyClass obj=new MyClass();
obj.a=3; //bu xato
obj.b=4; //bu xato
obj.setAB(3, 4); //bu to’g’ri
obj.showField(); //bu xato
obj.show(); //bu to’g’ri
}
}



Download 167,47 Kb.

Do'stlaringiz bilan baham:
1   ...   14   15   16   17   18   19   20   21   ...   26




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish