Ob'ektga Yo'naltirilgan Dasturlash va Javada Funksiyalar

1. Ob'ektga Yo'naltirilgan Dasturlash (OOP) Asoslari

Ob'ektga yo'naltirilgan dasturlash (OOP) — bu dasturlash paradigmasi bo'lib, u ob'ektlar va ularning o'zaro aloqalariga asoslanadi. OOPning asosiy maqsadi dastur tuzilmasini ob'ektlar orqali tashkil etishdir. OOPda dastur turli ob'ektlar to'plamidan iborat bo'lib, har bir ob'ekt ma'lum bir sinf (class) asosida yaratiladi.

Misol:

public class Car {
    String model;
    int year;

    public void start() {
        System.out.println("Car is starting...");
    }
}

OOPning asosiy tushunchalari:

2. Javada Funksiyalar (Metodlar)

Java'da funksiyalar (metodlar) sinfning ichidagi amallarni bajarish uchun ishlatiladi. Java'da metodlar yordamida biror vazifani bajarish yoki qiymatni qaytarish mumkin.

Misol:

public class Calculator {
    // Metod: ikki sonni qo'shish
    public int add(int a, int b) {
        return a + b;
    }

    // Metod: ikki sonni ayirish
    public int subtract(int a, int b) {
        return a - b;
    }

    // Metod: qiymat qaytarmas
    public void printMessage(String message) {
        System.out.println(message);
    }
}

Metod e'lon qilishda uning quyidagi tarkibiy qismlari mavjud:

Misol:

public class Test {
    public static void main(String[] args) {
        Calculator calc = new Calculator();  // Calculator ob'ektini yaratish
        int sum = calc.add(10, 20);  // add metodini chaqirish
        System.out.println("Sum: " + sum);  // 30

        calc.printMessage("Hello, world!");  // printMessage metodini chaqirish
    }
}

Metodga qiymat uzatish uchun parametrlar ishlatiladi. Java'da metodga qiymat uzatishda pass-by-value (qiymat orqali uzatish) prinsipiga amal qilinadi, ya'ni metod ichida o'zgartirilgan qiymatlar tashqarida ta'sir qilmaydi.

3. Java'da Polimorfizm Misollari

Polimorfizm — bu bir xil metod yoki interfeysning turli shakllarda ishlashi tamoyilidir. Java'da polimorfizm metodlarni o'zgarishi yoki interfeyslarni amalga oshirishi orqali amalga oshiriladi.

Misol:

class Animal {
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("Dog barks");
    }
}

public class Test {
    public static void main(String[] args) {
        Animal animal = new Animal(); // Animal ob'ekti
        Animal dog = new Dog(); // Dog ob'ekti

        animal.sound(); // Animal makes a sound
        dog.sound(); // Dog barks
    }
}