Mavzu: Dasturlash tilida sinflar. Do’stona funksiyalar. Inkapsulyasiya. Merosxo’rlik. Polimorfizm. Virtual funksiyalar. Ammallar va usullarni qayta ishlash va qayta aniqlash


Download 87.6 Kb.
bet2/4
Sana28.12.2022
Hajmi87.6 Kb.
#1008690
1   2   3   4
Bog'liq
3-mavzu (Inkapsulyasiya. Merosxo\'rlik. Polimorfizm. Virtual funksiyalar)

Misol:


public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.name = "John"; // error
System.out.println(myObj.name); // error
}
}
Xatolik sodir bo’ladi

Buning o'rniga, o'zgaruvchiga kirish va yangilash uchun getName() va setName() usullaridan foydalanamiz:

Buning o'rniga, o'zgaruvchiga kirish va yangilash uchun getName() va setName() usullaridan foydalanamiz:


public class Main {
public static void main(String[] args) {
Person myObj = new Person();
myObj.setName("John"); // Set the value of the name variable to "John"
System.out.println(myObj.getName());
}
} // Outputs "John"
Demak, nima uchun inkapsulyatsiya degan savolga javob berib o’tamiz:
    • Sinf atributlari va usullarini yaxshiroq nazorat qilish.
    • Sinf atributlari faqat o'qish uchun (agar siz faqat get usulidan foydalansangiz) yoki faqat yozish uchun (faqat belgilangan usuldan foydalansangiz) bo'lishi mumkin.
    • Moslashuvchan: dasturchi boshqa qismlarga ta'sir qilmasdan kodning bir qismini o'zgartirishi mumkin.
    • Ma'lumotlar xavfsizligini oshirish.

Merosxo‘rlik (extends)

extends kalit so'zi sinfni kengaytiradi (klass boshqa sinfdan meros bo'lib qolganligini bildiradi).

Dasturlashda atribut va usullarni bir sinfdan ikkinchisiga meros qilib olish mumkin. Biz "meros tushunchasini" ikki toifaga birlashtiramiz:

  • subclass (child) - boshqa sinfdan meros bo'lib qolgan sinf;
  • superclass (parent) - meros qilib olingan sinf
  • Sinfdan meros olish uchun kengaytirilgan (extends) kalit so'zdan foydalaniladi.


class Vehicle {
protected String brand = "Ford"; // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}

Download 87.6 Kb.

Do'stlaringiz bilan baham:
1   2   3   4




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling