Java dasturlash tilida eng oddiy dastur



Download 167,47 Kb.
bet16/26
Sana25.02.2022
Hajmi167,47 Kb.
#463371
1   ...   12   13   14   15   16   17   18   19   ...   26
Bog'liq
1 dedlayn Java dasturlash tilida eng oddiy dastur

2.5. Konstruktorlar.

Oldingi ko’rilgan barcha masalalarda bir konstruktorli sinflarni ko’rildi. Konstruktorlar ata amaliy dasturlarni yaratish jarayonini soddalashtirish va kod samaradorligini oshirish uchun zarurdir. Ushbu bo’limda biz konsturktor ulardan foidalanishni ko’rib chiqamiz.


Konstruktor – bu metoddir, obekt yaratilganda avtomatik ravishda bajariladi. Bundan tashqari, konstruktorlar quyudagicha ifodalanadi:
□konstruktor sinf nomi bilan bir xil bo’ladi;
□konstruktor qiymat qaytarmaydigan metoddir, shuning uchun konstruktorlar uchun identifikator turi ko’rsatilmaydi;
□konstruktor xuddi metodlardek argumentli va argumentsiz bo’lishi mumkin;
Bungacha, biz konstruktor yaratib ishlatmadik. Quyida xosil bo’lgan tushunchalarimiz yordamida sinf konstruktorlarini yaratib ko’ramiz:

class MyClass {


public int a;


public int b;

public MyClass() {


System.out.println(“Yangi obekt yaratildi.”);
a=5;
b=15;
show();
}
public void show(){
System.out.println(“Obekt maydonlari – a=”+a+”, b=”+b);
}
}

public class MainClass {


public static void main(String[] args) {
MyClass obj=new MyClass();
}
}

Ko’rib turganigizdek MyClass sinfi MyClass() konstruktoriga ega. U sinfdan obekt yaratilganda shu konstruktor avtomatik tarzda ishga tushadi. Yuqordagi misolda obekt yaratilganda nima hodisa bo’lishi belgilab beradi. Umuman olib qaraganda konstruktor sinfning dastlabki holatini belgilab beruvchi qurilmadir. Konstruktorni yaxshiroq tushunish uchun dasturlashga aloqasi bo’lmagan misollarni qaraymiz. Masalan bizda Mashina sinfi bo’lsin biz undan obekt yaratmoqchi bo’lsak. Demak shu mashinadan yaratilgan obekt dastlab qanday holatta bo’lsin yoqilgan yoki bo’lamsa biror amalbajarilgan va hakozo.Quyudagi misolda ham Point sinfidan obekt yaratilganda dastlab nuqtalarni belgilab beradi


class Point{
int x,y;
Point(int x,int y){
this.x=x;this.y=y;
}
Point(){
this(-10,45);
}
}
public class Main {
public static void main(String[] args) {
Point p1=new Point();
Point p2=new Point(77,88);
p1.x=11;
p1.y=22;
System.out.println(“p1.x=”+p1.x+” p1.y=”+p1.y);
System.out.println(“p2.x=”+p2.x+” p2.y=”+p2.y);
}

}
Ushbu dastur ikkita sinfdan tashkil topgan Point va asosiy sinf Main sinflaridan tashkil topgan. Etibor qilib qarasangiz asosiy sinfda Point orqali obekt yaratildi. Yaratilgan obektga 77 va 88 koordinatalari berib ketildi natijada p1 obektdagi x,y maydonlarning qiymati 77 va 88 qabul qildi.


Sinf va obyekt tushunchasini yaxshiroq tushunish uchun quyidagi misolga qaraymiz. Aylana sinfini yaratamiz:



Aylana

-radiosi: double =1.0
-rang : String =”red”

+Aylana()
+Aylana(r:double)
+getRadius():double
+getYuzasi():double

Aylana sinfini tuzulishini ko’rsatilgan tartibda yaratamiz. Sinf elementlari quyudagi elementlardan iboraat bo’ladi:



  • aylana sinfi ikkita o’zgaruvchidan iborat (maydondan): radios(o’zgaruvchi tipi double) va rang(o’zgaruvchi tipi String). Boshlangich qiymati radiosi=1.0, rang=red qabul qilingan.

  • Ikkita konstruktor argumentli va argumentsiz.

  • Ikkita public metod: getRadius() va getYuzasi (), bu metodlar qiymat qaytaruvchi radiosni va aylana yuzasini qiymatini qaytaradi.

Public class Circle {


private double radius;
private String color;
public Circle() {
radius = 1.0;
color = “red”;
}
public Circle(double r) {
radius = r;
color = “red”;
}
public double getRadius() {
return radius;
}
public double getArea() {
return radius*radius*Math.PI;
}
}
Bu asosiy sinf emas chunkiy uning asosiy metodi yoq. Shuning uchun boshqa sinfda bu sinfning obyektini yaratamiz.

Public class TestCircle {


public static void main(String[] args) {
Circle c1 = new Circle();
System.out.println(“aylananiny radiosi –“
+ c1.getRadius() + “ va yuzasi –“ + c1.getArea());
Circle c2 = new Circle(2.0);

System.out.println(“aylananiny radiosi –“


+ c2.getRadius() + “ va yuzasi –“ + c2.getArea());
}
}



Download 167,47 Kb.

Do'stlaringiz bilan baham:
1   ...   12   13   14   15   16   17   18   19   ...   26




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2025
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish