941-19 guruh talabasi Xusinov Shaxriyor
4-amaliy ishi
Mavzu: Merosxo’rlik (Inheritance)
Merosxo’rlik deb Ma'lum obyekt asosida boshqa obyektni yaratish jarayoniga aytiladi. Bir klassning boshqa klassdan meros olishi yordamida amalga oshiriladi. Meros olingan obyekt ota obyektdagi xususiyatlarni tanlovga ko'ra meros oladi. Masalan, avtoulov bu ota obyekt. Bu obyekt yordamida yengil mashina, yuk mashinasi, poyga mashinasi kabi boshqa obyektlarni yaratib olishimiz mumkin. Ota klassda bo'lgan 4 g'ildirak farzand klasslarda ham mavjud bo'ladi. Ya'ni poyga mashinasi, avtoulovdan g'ildiraklarni meros oladi. Ota klassdan meros olayotgan bola klassimiz ota klassning shaxsiy bo'lmagan ( private) barcha o'zgaruvchilari, funksiyalari va h.k larni meros qilib oladi.
Bu rasmda programmer employe dan meros sifatida “salary” ni oladi va programmer clasida bonus va salary nomli field lar bo’ladi.
class Employee{
float salary=40000; }
class Programmer extends Employee{
int bonus=10000;
public static void main(String args[]){
Programmer p=new Programmer();
System.out.println("Programmer salary is:"+p.salary);
System.out.println("Bonus of Programmer is:"+p.bonus);
}
}
Natija :
Programmer salary is:40000.0
Bonus of programmer is:10000
Yuqoridagi misolda Programmer klassi Employee klassidan meros olyapti va undagi float salary o'zgaruvchisini o'ziga o'zlashtirib olyapti.
Javada asosiy klassdan 3 xil usulda meros olish mumkin ular single (bir tomonlama), multilevel(bir necha class orqali) va hierarchical(iyerarxiya).
Javada bir vaqtning o'zida bir necha klass dan meros olib bo'lmaydi.
class A{
void msg(){System.out.println("Hello");}
}
class B{
void msg(){System.out.println("Welcome");}
}
class C extends A,B{
public static void main(String args[]){
C obj=new C();
obj.msg();//
}
}
Bu yerda Compile Time Error (Kompilyatsiya Vaqtida Xatolik) bo'ladi, chunki bir vaqtning o'zida C klassi A, B klasslaridan meros olyapti. Yuqorida aytganimizdek javada bir vaqtning o'zida bir necha klassdan meros olib bo'lmaydi.
Topshiriq 1.
Domla nomli (Name, Kafedra , Experiance) fieldlari bo’lgan class yarating va Kurator nomli group nomli fieldi bor bo’lgan class yarating. Domla nomli classdan Kurator nomli classga meros oling. Va Main faylida getter , setter va konstruktorlardan foydalaning.
Domla.java
public class Domla {
public String name;
protected String qafedra;
private int experience;
public int getExperience() {
return experience;
}
public void setExperience(int experience) {
this.experience = experience;
}
void baxoQoyish(int baxo) {
System.out.println("Int toifasidagi baxo qo'yish funksiyasi chaqirildi");
}
void baxoQoyish(double baxo) {
System.out.println("Double toifasidagi baxo qo'yish funksiyasi chaqirildi");
}
}
Kurator.java
package encapsulation;
public class Kurator extends Domla {
private String group;
public Kurator() {
}
public Kurator(String name, String qafedra, int experience, String group) {
this.name = name;
this.qafedra = qafedra;
setExperience(experience);
this.group = group;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getQafedra() {
return qafedra;
}
public void setQafedra(String qafedra) {
this.qafedra = qafedra;
}
public int getExperience() {
return getExperience();
}
public void setExperience(int experience) {
if (experience >= 0 && experience <= 60) {
setExperience(experience);
}
}
public String getGroup() {
return group;
}
public void setGroup(String group) {
this.group = group;
}
@Override
public String toString() {
return "Kurator{" +
"name='" + name + '\'' +
", qafedra='" + qafedra + '\'' +
", experience=" + getExperience() +
", group='" + group + '\'' +
'}';
}
}
Main.java
package encapsulation;
public class Main {
public static void main(String[] args) {
Kurator kurator = new Kurator();
kurator.setName("Shaxriyor");
kurator.setExperience(5);
kurator.setGroup("941-19");
kurator.setQafedra("DI-Kafedra");
System.out.println(kurator.getName() + " " + kurator.getGroup());
Kurator kurator1 = new Kurator("Alibek", "KI-kafedra ", 2, "942-19");
System.out.println(kurator1.toString());
kurator.baxoQoyish(1); // int toifalisiga murojat qiladi
kurator.baxoQoyish(1.2); // double toifasidagiga murojat qiladi
}
}
Do'stlaringiz bilan baham: |