{
maydon;
metod;
}
Namuna o’zgaruvchi sinf ichida lekin metod tashqarisida yaratilgan o’zgaruvchi hisoblanadi. Kompilyatsiya vaqtida namuna o’zgaruvchi xotiradan joy olmaydi. Qachonki sinfdan obyekt yaratilsagina xotiradan joy oladi, shuning uchun u namuna (yoki obyekt) o’zgaruvchi deb nomlanadi.
Metod funksiyaga o’xshash va sinfning xususiyatlarini ifodalaydi. Metod koddan qayta-qayta foydalanish va uni optimizatsiya qilish uchun ishlatiladi.
new kalit so’zi classdan obyekt yaratish va u uchun heap xotiradan joy band qilish uchun ishlatiladi.
Keling, endi Talaba nomli sinf yaratamiz. Unda id va ism nomli maydonlar bo’lsin. Va undan bitta obyekt yaratamiz.
class Talaba {
int id;
String ism;
public static void main(String[] args) {
Talaba talaba = new Talaba();
System.out.println(talaba.id); // 0
System.out.println(talaba.ism); // null
}
}
Dasturlashda, odatda biz ko’plab sinflar yaratamiz va ulardan boshqa sinflar ichida foydalanamiz. Yuqoridagi misolda esa sinfdan o’sha sinfdagi main() metodida foydalandik.
Java dasturlash tilida obyektlar 3 xil usulda yaratiladi:
reference yordamida
metod yordamida
konstruktor yordamida
Quyida 3 ta usulda obyekt yaratamiz.
Reference yordamida
class Talaba {
int id;
String ism;
public static void main(String[] args) {
Talaba talaba = new Talaba();
talaba.id = 1;
talaba.ism = "Husan";
System.out.println(talaba.id + " " + talaba.ism); // 1 Husan
}
}
Metod yordamida
class Talaba {
int id;
String ism;
void qiymatYuklash(int id1, String ism1){
id = id1;
ism = ism1;
}
void chopEtish(){
System.out.println(id + " " + ism);
}
public static void main(String[] args) {
Talaba talaba = new Talaba();
talaba.qiymatYuklash(2, "Aziz");
talaba.chopEtish(); // 1 Husan
}
}
Konstruktor haqida keyingi darslarimizda o’rganamiz.
Quyida sinf va obyektlar ishtirokida Bank akkountga doir kod yozamiz. Uni yaxshi tahlil qilishga harakat qiling.
class Account {
int akkountRaqami;
String akkountIsmi;
float pulMiqdori;
void qiymatBerish(int a, String n, float amt) {
akkountRaqami = a;
akkountIsmi = n;
pulMiqdori = amt;
}
void deposit(float amt) {
pulMiqdori = pulMiqdori + amt;
System.out.println(amt + " depozit qo'shildi");
}
void pulYechish(float amt) {
if (pulMiqdori < amt) {
System.out.println("Balans kam");
} else {
pulMiqdori = pulMiqdori - amt;
System.out.println(amt + " pul yechildi");
}
}
void balansniTekshirish() {
System.out.println("Balans: " + pulMiqdori);
}
void chopEtish() {
System.out.println(akkountRaqami + " " + akkountIsmi + " " + pulMiqdori);
}
public static void main(String[] args) {
Account a1 = new Account();
a1.qiymatBerish(832345, "Anvar", 1000);
a1.chopEtish();
a1.balansniTekshirish();
a1.deposit(40000);
a1.balansniTekshirish();
a1.pulYechish(15000);
a1.balansniTekshirish();
}
}
Konsulga quyidagilar chop etiladi:
832345 Anvar 1000.0
Balans: 1000.0
40000.0 depozit qo'shildi
Balans: 41000.0
15000.0 pul yechildi
Balans: 26000.0
Dostları ilə paylaş: