Java nima Java dasturlash tili


Download 1.25 Mb.
bet33/49
Sana20.01.2023
Hajmi1.25 Mb.
#1103409
1   ...   29   30   31   32   33   34   35   36   ...   49
Bog'liq
2 5420273372074344755

abstract void funksiya();

Abstrakt metodi bor bo'lgan abstrakt classga misol:

public abstract class Mashina {

abstract void madeli();

abstract void mashinaTuri();


abstract void uzunligi();
abstract void rangi();

}

public class Malibu extends Mashina{



@Override
void madeli() {
System.out.println("Chevrolet");
}

@Override


void mashinaTuri() {
System.out.println("Malibu");
}

@Override


void uzunligi() {
System.out.println("4.7 metr");
}

@Override


void rangi() {
System.out.println("Qora");
}
public static void main(String[] args) {
Mashina mashina = new Malibu();
mashina.madeli();
mashina.mashinaTuri();
mashina.uzunligi();
mashina.rangi();
}
}
Natija :

Chevrolet


Malibu
4.7 metr
Qora
Yuqoridagi misolda Malibu classi abstrakt metodlari (modeli, mashinaTuri, uzunligi, rangi) bor bo'lgan Mashina abstarkt classidan nasl olayapti va uning abstrakt classi tanasini realizatsiya(Override) qilayapti.
Amaliyotda abstrakt class bir nechta classlar uchun ota class vazifasini bajaradi va abstrakt metodlar turli bola classlarda turlicha realizatsiya qilinadi.
Shuningdek abstrakt class konstruktor, tanasi bor metod, ma'lumotlar va hattoki main() metodga ega bo'lishi mumkin. Quyidagi misolga qarang:

Esda tuting: Agar class tarkibida bitta bo'lsa ham abstarkt metod mavjud bo'lsa, class ham abstract bo'lishi kerak.
Esda tuting: Agar biror class abstrakt classdan voris olsa uning barcha abstrakt metodlarini realizatsiya qilishi kerak yoki o'zi ham abstrakt class bo'lishi kerak.

Javada Interface





Javada interfeyslar orqali to'liq abstraktsiyani tashkillashtirish mumkin. Interfeys tarkibidagi metodlarning faqat nomlari bo'lishi mumkin, ularning tanasi bo'lishi mumkin emas(java 8 dan boshlab default funksiyalarga funksiyaning bajarilish qismi yozilishi qo’shildi). Shuningdek, Interfeys tarkibida ma'lumotlar bo'lishi ham mumkin.
Interfayslarda o’zgaruvchilar e’lon qilinmaydi unada fqat o’zgarmas qiymatlar final qiyamtlar e’lon qilinadi.
Interfacega bitta misol keltirsak.
public interface Dasta {
void ishlatilishSohasi();
void tayorlanganMatirial();
void size();
}
Dasta nomli interface yaratildi unda ishlatilishSohasi(),tayorlanganMatirial(),size() nomli funksiyalari bor.

public class Pichoq implements Dasta{

@Override
public void ishlatilishSohasi() {
System.out.println("Pichoq uchun");
}

@Override


public void tayorlanganMatirial() {
System.out.println("Yog'och");
}

@Override


public void size() {
System.out.println("15 sm");
}
public static void main(String[] args) {
Pichoq pichoq = new Pichoq();
pichoq.ishlatilishSohasi();
pichoq.tayorlanganMatirial();
pichoq.size();
}
}
Ko’rib turganingizdek class yaratildi va Dasta interfacidan implement olindi. Bu holatda dasta barcha dastasi bor obyektlar uchun umumiy.
default funksiyaga misol :

interface Formula {


double calculate(int a);

default double sqrt(int a) {


return Math.sqrt(a);
}
}
Formula formula = new Formula() {
@Override
public double calculate(int a) {
return sqrt(a * 100);
}
};

formula.calculate(100); // 100.0


formula.sqrt(16);
Esda tuting: Java kompilyatori interfeys tarkibidagi metodlarga public va abstractkalit so'zlarni, interfeys tarkibidagima'lumotlarga esa public, static va final kalit so'zlarni qo'shadi.
Bir class bir vatda bir nechta interfeyslarndan foydalanishi (implementation) mumkin. Quyidagi misolga qarang:
interface Printable{

Download 1.25 Mb.

Do'stlaringiz bilan baham:
1   ...   29   30   31   32   33   34   35   36   ...   49




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