Загрузил Sa'wle Utemuratova

11-Lekciya

реклама
11-Lekciya: Obyektke baǵdarlanǵan programmalastırıw.
Javada klaslar hám obyektler. Konstruktorlar
1.
2.
3.
4.
Joba:
Obyektke baǵdarlanǵan
programmalastırıw haqqında túsinik;
Klaslar hám obyektler;
Klass obyektlerin jaratıw;
Konstruktorlar menen islew.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Obyektke baǵdarlanǵan programmalastırıw
Javada jazılǵan barlıq programmalar obyektke baǵdarlanǵan
programmalastırıw (OBP) tiykarında dúziledi. Yaǵnıy, Java tilin qatań
OBP tili dep atawǵa boladı.
OBP – bul programmalardı, belgili bir klastıń ekzemplyarları bolǵan,
obyektlerdiń jıyındısı tıykarında súwretlewshi programmalastırıw
metodologiyası esaplanadı. Yaǵnıy, OBP tıykarında klass hám obyekt
túsinikleri
jatadı.
Búgingi
kúnde
Javadan
basqa
birneshe
programmalastırıw tilleri (C++, C#, Objective-C, Swift, Python, PHP,
JavaScript) OBP principleri tiykarında isleydi.
OBP nı túsiniw ushın dáslep klasslar hám obyektler haqqında túsinikke
iye bolıw kerek boladı. Sonlıqtan, eń dáslep klass hám obyekt haqqında
toqtalıp ótemiz.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Klasslar hám obyektler
Klasslardan aldında bir neshe márte paydalandıńız. Biraq, ol jaǵdaylarda
ózińız klass jaratpastan, aldınnan Java kitapxanasında bar bolǵan
klasslardıń obyektlerin jaratıp paydalandıńız. Ápiwayı mısal,
ózgeriwshilerge programma orınlanıw waqtında mánis beriw ushın
Scanner klası yamasa tosınnanlı sanlar ushın Random klasınıń
obyektin jarattıńız.
Scanner kiritiw = new Scanner(System.in);
Bunda Scanner klass, al kiritiw obyekt esaplanadı. Demek klasstıń
obyektin jaratıp, usı obyektke tiyisli kerekli metodlardan qálegenshe
paydalanıwǵa boladı. Mısalı:
int san1 = kiritiw.nextInt();
double san2 = kiritiw.nextDouble();
Bunda nextInt hám nextDouble Scanner klasınıń metodları bolıp
tabıladı.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Klasslar hám obyektler
Klasslar hám obyektlerdi túsiniw ushın real ómirden mısal keltireyik.
Máselen, mashinalardı klass dep alsaq, konkret bir modeli (Malibu,
Lacetti) obyekt esaplanadı. Basqa bir mısal, haywanlardı klass dep
alsaq, at usı klastıń obyekti boladı yamasa atlardı klass dep alsaq, usı
atlardıń ishinde belgili bir parodası (mustang) obyekt bolıp tabıladı.
Programmalastırıwda klass bul metodlar hám ózgeriwshiler jıyındısınan
turadı. Obyekt bolsa, sol klass tıykarında jaratıladı. Yaǵnıy, obyektler
ushın klasslar shablon esaplanadı. Sonday-aq, obyektlerdiń halatı hám
ózin tutıwı sıyaqlı qásiyetleri boladı. Mısalı, joqarıdaǵı mashinanıń
halatına: reńi, tezligi, modeli hám t.b., al ózin tutıwına: mashinanıń júriwi,
toqtawı sıyaqlılar kiredi. Javada obyekt halatı maydanlarda (ekzemplyar
ózgeriwshi) saqlanadı, al ózin tutıwı bolsa, metodlar járdeminde islenedi.
Mısalı, mashina klasın jaratıw kerek bolsın. Onı tómendegishe jaratıw
múmkin:
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Klasslar hám obyektler
Klass jaratıw
modifikator
maydanlar
metodlar
Obyekt jaratıw
klass atı
klass atı
public class Mashina{
String model;
int tezlik;
String ren;
void juriw(){ }
void toqtaw(){ }
}
klass denesi
obyekt
Mashina lasetti = new Mashina();
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Klass ishinde ózgeriwshiler
Klass ishinde ózgeriwshiler 3 túrde bolıwı múmkin:
 Lokal ózgeriwshiler, metodlar yamasa konstruktorlar ishinde
táriyplengen bolıp, tek ǵana metod ishinde kórinedi. Metod jumısın
toqtatqan waqıtta ózgeriwshiler óshiriledi.
 Ekzemplyar ózgeriwshiler, klass ishindegi ózgeriwshiler bolıp, usı
klass ishindegi qálegen metod yamasa konstruktor ishinde
paydalanıwǵa boladı
 Klasstıń statikalıq ózgeriwshileri, klass ishinde hám metod sırtında
statikalıq gilt sóz arqalı táriyplenetuǵın ózgeriwshiler.
Statikalıq ózgeriwshiler, metodlar hám modifikatorlar haqqında keyingi
lekciyalarda toqtalıp ótemiz.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
OBP nıń tiykarǵı 4 principi:
 Miyras – bul aldınǵı bar bolǵan klass tiykarında jańa klass jaratıw. Bunda jańa jaratılǵan
klass aldınǵı klastıń funkcionallarınan paydalana aladı. Máselen, joqarıda mashina klasın
jarattıq. Biraq biz mashinalarǵa jańa xarakteristika qospaqshımız (Máselen, ústi ashılıp
jabılatın). Sonıń menen birge aldınǵı xarakteristikalarında saqlap qalmaqshımız. Usı
jaǵdayda jańa mashina klasın jaratıp, aldınǵı xarakteristikaların, dáslepki mashina klasınan
miyras qılıp alamız.
 Abstrakciya – bunda obyekttiń kerekli xarakteristikaların jıynap alıwǵa hám keresiz,
ekinshi dárejelilerin esapqa almaw múmkinshiligin beredi. Máselen, satıp alıwshı ushın
mashinanıń kerekli xarakteristikaları qansha jol júrgeni, neshinshi jılı islep shıǵarılǵanı
sıyaqlı maǵlıwmatlar boladı.
 Inkapsulyaciya – bul, maǵlıwmatlardı qorǵaw hám ózgertiwge ruxsat beriw hám ruxsat
bermew múmkinshiligin beredi. Máselen, mashina atın ózgertiwge ruxsat berilmeydi (islep
shıǵarǵan kárxananıń avtorlıq huqıqı bar, al balonın yamasa salon ishin ózgertiwge boladı).
 Polimorfizm – birneshe tipler menen bir tipte járdeminde islegendey múmkinshilik beredi.
Máselen transport klasın jaratayıq. Bul klassqa miyras qılıp samolyot, mashina, keme
klassların jaratamız. Hár bir klass ishine júrgiziw metodın jaratamız. Biraq, samolyottı
júrgizsek ol ushadı, al mashina jolda júredi, keme suwda júzedi. Biz usı júrgiziw metodı
arqalı qálegen trasporttı júrgize alamız.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
NetBeans ortalıǵında klass jaratıw
Jańa klass jaratıw ushın, óz aldına fayl jaratıw kerek boladı. NetBeans
ortalıǵında klass jaratıw tómendegishe ámelge asırıladı.
 Dáslep jańa proekt jaratamız;
 File (Файл) menyusınan New File (Создать файл) buyırıǵı tańlanadı
hám payda bolǵan aynadan Java Class (Класс Java) tańlanıp next
(Далее) túymesi basıladı.
 Class Name (Имя класса) maydanına klassqa jańa at berip, Finish
(Готово) túymesin basamız.
 Nátiyjede jańa klass jaratıladı.
Usınday jol menen Mashina klasın jaratamız.
Bul jaǵdayda, 1 proekt ishinde 2 klass boladı. Birinshi klass proekt atı
menen birdey jaratılǵan hám ishinde main metodı bar. Al ekinshi klass
bolsa, ózimiz jaratqan biraq klass denesinde hesh qanday kod bolmaydı.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
NetBeans ortalıǵında klass jaratıw
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Mısal
Mashina klasında modeli, reńi, tezligi haqqında maǵlıwmatlardı
shıǵarıwshı metod jaratıp, usı klastıń birneshe obyektlerin main metodı
ishinde jaratıw kerek bolsın.
package klasslar;
public class Mashina {
public String model="";
public int tezlik=0;
public String ren="";
public void magliwmat(){
System.out.println("Mashina modeli:"+ model);
System.out.println("Mashina tezligi:"+ tezlik);
System.out.println("Mashina reni:"+ ren);
}
}
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Mısal
package klasslar;
public class Klasslar {
public static void main(String[] args) {
Mashina lasetti = new Mashina();
lasetti.model = "Lacetti";
lasetti.tezlik = 180;
lasetti.ren = "qara";
lasetti.magliwmat();
Mashina malibu = new Mashina();
malibu.model = "Malibu";
malibu.tezlik = 220;
malibu.ren = "aq";
malibu.magliwmat();
}
}
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Konstruktorlar
Hár bir klasta eń keminde bir konstruktor boladı. Aldınǵı jaratqan
klaslarda, klass denesinde heshqanday
konstruktor kórmesekte
programma tárepinen islewshi konstruktor boladı. Eger konstruktordı
ózimiz jaratpaqshı bolsaq, onı klass atı menen birdey qılıp qoyıw kerek
boladı. Mısalı, bos konstruktor tómendegishe jaratıladı:
public klassAtı(){}
Konstruktor atı klass atı menen birdey boladı. Sonıń ushın joqarıdaǵı
mısalda konstruktor atına klassAtı dep jazdıq. Konstruktorlardı
paydalanıwdan maqset, obyekt jaratıp atırǵanda onıń halatları
haqqındaǵı maǵlıwmatlardı jiberiw bolıp tabıladı. Aldınǵı mısalda, lasetti
yamasa malibu obyektlerin jaratqanda onıń modelin, tezligin, reńin birme
– bir kiritdik. Al konsturktor jaratsaq onı ańsat ámelge asırıwǵa boladı.
Joqarıdaǵı mısaldı konstruktor járdeminde isleyik.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Konstruktorlar
package klasslar;
public class Mashina {
public String model="";
public int tezlik=0;
public String ren="";
// konstruktor
public Mashina(String s, int t, String r){
model = s; tezlik = t; ren = r;
}
public void magliwmat(){
System.out.println("Mashina modeli:"+ model);
System.out.println("Mashina tezligi:"+ tezlik);
System.out.println("Mashina reni:"+ ren);
}
}
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Konstruktorlar
package klasslar;
public class Klasslar {
public static void main(String[] args) {
Mashina lasetti = new Mashina("Lacetti", 180, "qara");
Mashina malibu = new Mashina("Malibu", 220, "aq");
}
}
Demek bul mısalda konstruktor:
public Mashina(String s, int t, String r){
model = s; tezlik = t; ren = r;
}
Konstruktorlar klass atı menen birdey bolıwı hám modifikatorı public
bolıwı kerek. Sonday-aq, bir klass ishinde birneshe konstruktorlardı
jaratıw múmkin. Olar bir – birinen parametrleri boyınsha parıq qılıwı
múmkin.
</TITUNF></PI></PROGRAMMALASTIRIW></A.B.ORINBAEV>
Tákirarlaw sorawları
 Obyektke baǵdarlanǵan programmalastırıw ne ushın kerek?
 OBP nıń tiykarın neler quraydı?
 OBP nıń qanday principleri bar?
 Klass hám obyekt degende neni túsinesiz?
 Miyrasqa mısal keltiriń
 Polimorfizmge mısallar keltiriń
 Inkapsulyaciya degen ne?
Скачать