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 mashina1 — Car 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.