10. Class va Object

Java — object-oriented programming, ya'ni obyektga yo‘naltirilgan dasturlash tili.

Shuning uchun Java'da class va object tushunchalari juda muhim.

Hozirgacha class haqida ozgina ko‘rgan edik. Endi uni yaxshiroq tushunamiz.

Class nima?

Class — obyekt uchun reja yoki qolip.

Masalan, biz Car nomli class yaratishimiz mumkin.

class Car {
    String rang;
    String model;
}

Bu yerda Car classi mashina haqida ma'lumot saqlashi mumkin.

Lekin Car hali haqiqiy mashina emas.

Uni qolip deb tasavvur qiling.


Object nima?

Object — class asosida yaratilgan haqiqiy obyekt.

Masalan:

Car mashina1 = new Car();

Bu yerda mashina1Car classidan yaratilgan object.

Oddiy qilib:

Class  → qolip
Object → shu qolip asosida yaratilgan narsa

Masalan:

Car → mashina uchun qolip
mashina1 → bitta mashina
mashina2 → boshqa mashina

Birinchi classimiz

Keling, Car classini yaratamiz.

class Car {
    String rang;
    String model;
}

Endi main() ichida object yaratamiz:

public class Main {
    public static void main(String[] args) {

        Car mashina = new Car();

    }
}

Bu yerda:

new Car()

yangi Car object yaratadi.


Objectga qiymat berish

Car classida ikkita ma'lumot bor:

String rang;
String model;

Object yaratgandan keyin ularga qiymat berishimiz mumkin.

Car mashina = new Car();

mashina.rang = "Qizil";
mashina.model = "BMW";

Endi object quyidagicha ma'lumotga ega:

rang  → Qizil
model → BMW

Object ma'lumotlarini chiqarish

System.out.println(mashina.rang);
System.out.println(mashina.model);

Natija:

Qizil
BMW

Bir nechta object

Bitta classdan bir nechta object yaratish mumkin.

Car mashina1 = new Car();
Car mashina2 = new Car();

Ularga turli qiymatlar beramiz:

mashina1.rang = "Qizil";
mashina1.model = "BMW";

mashina2.rang = "Oq";
mashina2.model = "Toyota";

Endi ikkita mustaqil object mavjud.


To‘liq misol

class Car {
    String rang;
    String model;
}

public class Main {
    public static void main(String[] args) {

        Car mashina1 = new Car();

        mashina1.rang = "Qizil";
        mashina1.model = "BMW";

        System.out.println(mashina1.rang);
        System.out.println(mashina1.model);
    }
}

Natija:

Qizil
BMW

Class ichida method

Class faqat ma'lumot saqlab qolmaydi.

Uning ichida methodlar ham bo‘lishi mumkin.

Masalan:

class Car {

    String rang;
    String model;

    void signalBer() {
        System.out.println("Bip-bip!");
    }
}

Object orqali methodni chaqiramiz:

Car mashina = new Car();

mashina.signalBer();

Natija:

Bip-bip!

Objectning o‘z methodi

Masalan:

class Car {

    String model;

    void yur() {
        System.out.println(model + " yurmoqda.");
    }
}

Keyin:

Car mashina = new Car();

mashina.model = "BMW";

mashina.yur();

Natija:

BMW yurmoqda.

Method objectning ma'lumotlaridan foydalanishi mumkin.


Real hayotdagi misol

Classni uy loyihasiga o‘xshatish mumkin.

Masalan:

class Uy

Bu uy qanday bo‘lishini belgilaydi.

Keyin:

Uy uy1 = new Uy();
Uy uy2 = new Uy();

deb ikkita uy objectini yaratishimiz mumkin.

Demak:

Class → loyiha
Object → loyiha asosida yaratilgan uy

Class ichidagi o‘zgaruvchilar

Class ichida yaratilgan o‘zgaruvchilar field yoki instance variable deyiladi.

Masalan:

class Student {
    String ism;
    int yosh;
}

Bu yerda:

ism
yosh

Student classining fieldlari.


Student class

Keling, o‘quvchi uchun class yaratamiz.

class Student {
    String ism;
    int yosh;

    void tanishtir() {
        System.out.println("Mening ismim " + ism);
        System.out.println("Yoshim " + yosh);
    }
}

Keyin object yaratamiz:

Student talaba = new Student();

talaba.ism = "Ali";
talaba.yosh = 18;

talaba.tanishtir();

Natija:

Mening ismim Ali
Yoshim 18

Bitta classdan ko‘p object

Masalan:

Student talaba1 = new Student();
Student talaba2 = new Student();

talaba1.ism = "Ali";
talaba1.yosh = 18;

talaba2.ism = "Vali";
talaba2.yosh = 20;

Har bir objectning o‘z ma'lumotlari bo‘ladi.

talaba1 → Ali, 18
talaba2 → Vali, 20

new nima?

Object yaratishda new ishlatiladi.

Masalan:

Car mashina = new Car();

Bu:

Car classidan yangi object yarat

degan ma'noni anglatadi.


this haqida qisqacha

Class ichida ba'zan objectning o‘z fieldiga murojaat qilish uchun this ishlatiladi.

Masalan:

class Student {

    String ism;

    void ismniChiqar() {
        System.out.println(this.ism);
    }
}

Bu yerda:

this.ism

joriy objectning ism fieldini bildiradi.

Hozircha thisni chuqur o‘rganish shart emas.

Keyingi bobda constructor bilan ishlaganda thisdan ko‘proq foydalanamiz.


Class va object o‘rtasidagi farq

Class Object
Qolip Haqiqiy obyekt
Reja Shu reja asosidagi narsa
O‘zi ma'lumot saqlamaydi O‘z ma'lumotlariga ega
Car mashina1

Masalan:

class Car {
    String model;
}

Bu class.

Car mashina = new Car();

Bu esa object.


Amaliy mashqlar

1-mashq

Student classini yarating.

Unda:

ism
yosh

fieldlari bo‘lsin.

Keyin object yaratib, qiymat bering.

2-mashq

Car classini yarating.

Unda:

model
rang

fieldlari bo‘lsin.

Keyin ikkita object yarating.

3-mashq

Book classini yarating.

Unda:

nom
muallif
sahifalar

ma'lumotlari bo‘lsin.

4-mashq

Person classini yarating.

Unda salomBer() methodi bo‘lsin.

Method chaqirilganda:

Salom!

chiqsin.

5-mashq

Student classiga tanishtir() methodini qo‘shing.

Masalan:

Ism: Ali
Yosh: 18

ko‘rinishida ma'lumot chiqarsin.


Muhim narsalarni eslab qoling

Class — object yaratish uchun qolip.

Object — class asosida yaratilgan narsa.

Object yaratish:

Car mashina = new Car();

Object fieldiga murojaat qilish:

mashina.model

Object methodini chaqirish:

mashina.yur();

Bitta classdan bir nechta object yaratish mumkin.

Keyingi bobda Constructor yordamida object yaratilganda unga boshlang‘ich qiymat berishni o‘rganamiz.