Obyektke baǵdarlanǵan programmalastırıw principleri
Download 0.83 Mb.
|
raxat
Dasturlew Obyektke baǵdarlanǵan programmalastırıw principleri OBP nı túsiniw ushın onıń tiykarǵı 4 principin bilip alıw kerek. Olar tómende keltirilgen. 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 7 (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 alamiz. Javada miryastan paydalanıw Miyras java tilinde extends gilt sózi arqalı, miyrasxor klass atınan aldın jazıladı. Miyrastan paydalanıw arqalı tiykarǵı klasstıń metodları hám maydanlarınan paydalanıw imkaniyatına iye bolasız. Miyras qaldırıwshı klasstı Javada superklasslar depte ataydı. Solay etip, miyras qılıp alıwshı klass superklasstıń barlıq aǵzaların miyras qılıp aladı hám sonıń menen birge ózinińde elementerin qosadı. Tómendegi mısalda Calculator atlı klass jaratılǵan. Calculator klası ishinde qosiw hám aliw atlı metodlar bar bolıp, olar sáykes túrde 2 sannıń qosındısın hám ayırmasın esaplaydı. Endi biz kobeytiw metodında qospaqshımız. Onıń ushın MyCalculator klasın Calculator klasına miyras qılıp jaratamız hám ishine kobeytiw metodın qosamız. Keyin biz MyCalculator klası arqalı Calculator klasınıńda metodlarınan paydalana alamız. class Calculator { int c; public void qosiw(int a, int b) { c = a + b; System.out.println("Qosındı: " + c); } public void aliw(int a, int b) { c = a - b; System.out.println("Ayırma: " + c); } } public class MyCalculator extends Calculator { public void kobeytiw(int a, int b) { int c = a * b; System.out.println("Kóbeyme: " + c); } public static void main(String args[]) { int a = 10, b = 20; 14 MyCalculator calc = new MyCalculator(); calc.qosiw(a, b); calc.aliw(a, b); calc.kobeytiw(a, b); } } 3. Klass hám obyekt 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. 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ı. 4. Inkapsulyaciya Soraw payda boladı, ne ushın barlıq maydanlar hám metodlardı public modifikatorı menen táriyplep, barlıq klasslar ushın ashıq etip paydalanıwǵa 23 bolmaydı ma? Eger basqa klass tuwrıdan-tuwrı maydandı ózgertetuǵın bolsa, programma islewi dawamında korrektli emes mánis jiberiwi múmkin. Máselen, adam jası ushın teris san. Hár qiylı modifikatorlardı kerekli jerinde paydalanıw, programmanıń durıs islewine alıp keledi. Bul modifikatorlardan paydalanıp kóriniwsheńlik oblastin ózgertiw inkapsulyaciya delinedi. Keliń tómendegi programma kodın qarayıq. public class Program{ public static void main(String[] args) { Person anna = new Person("Anna", 23); System.out.println(anna.getAge()); // 23 anna.setAge(25); System.out.println(anna.getAge()); // 25 anna.setAge(123456); System.out.println(anna.getAge()); // 25 } } class Person{ private String name; private int age; public Person(String name, int age){ this.name = name; this.age = age; } public String getName(){ return this.name; } public void setName(String name){ this.name = name; } public int getAge(){ return this.age; } public void setAge(int age){ if(age > 0 && age < 110) this.age = age; } } 5. Polimorfizm Polimorfizm sózi grek tilinen alınǵan bolıp «kóp formalı» degen mánisti bildiredi hám obyektke baǵdarlanǵan programmalastırıwda miyrasqa uqsap tiykargı fundamentallıq túsiniklerden biri esaplanadı. Polimorfizm birneshe tipler menen bir tipte islegendey islew múmkinshiligin beredi. Yaǵnıy, polimorfizm járdeminde birneshe klasslar ishinde jaylasqan birdey metodlardan paydalanıw oǵada ańsat ámelge asırıladı. Polimorfizmdi túsiniw ushın tómendegishe mısaldı qarayıq. Bizde 3 klass bar. Olar: Mashina, Samolyot, Keme. Bul klasslardıń hámmesinde run metodı bar bolıp, bir waqıttıń ózinde usı 3 klasstıń run metodın isletiw kerek. Eger polimorfizmnen paydalanbasaq, bul klasslardıń hár biri ushın obyekt jaratıwǵa tuwrı keledi. Al polimorfizm imkaniyatınan paydalansaq onı ańsat ámelge asırıwǵa boladı. Yaǵnıy, Transport klasın jaratıp Mashina, Samolyot, Keme klassların Transport klasına miyras qılıp jaratamız. Programma kodı tómendegishe: Atım: Axmet Jasım: 19 Boyım: 175 Atım: Ali Jasım: 20 Boyım: 179 Kurs: 1 17 package misal2; public class Transport { public void run(){ System.out.println("júriw"); } } package misal2; public class Mashina extends Transport{ @Override public void run(){ System.out.println("200 km/saat tezlik"); } } package misal2; public class Samolyot extends Transport{ @Override public void run(){ System.out.println("600 km/saat tezlik"); } } package misal2; public class Keme extends Transport{ @Override public void run(){ System.out.println("150 km/saat tezlik"); } } package misal2; public class Misal2 { public static void main(String[] args) { Transport[] trans = new Transport[]{ new Mashina(),new Samolyot(),new Keme()}; for (int i = 0; i < 3; i++) { trans[i].run(); } } } Javada ápiwayı klasslardan basqa abstrakt klasslarda bar. Abstrakt klasslar ápiwayı klasslarǵa uqsas bolıp, olarda da maydanlar hám metodlar boladı. Biraq abstrakt klasstıń obyektin jaratıwǵa bolmaydı. Abstrakt klasslar miyrasxor klasslar ushın tiykarǵı funkcionaldı orınlaydı hám abstrakt klasslardı jaratıw ushın abctract gilt sózinen paydalanıladı: public abstract class Person{ private String name; public String getName() { return name; } } Abstrakt klasslar ishinde ápiwayı metodlar menen birge abstrakt metodlarda bolıwı múmkin. public abstract void display(); Abstrakt klasslar ne ushın kerek? Máselen, bank operaciyaları ushın programma jaratpaqshımız. Bul programmada 3 klass boladı. Yaǵnıy, Person klası – bul hár bir adamdı súwretlew ushın, Employee klası – bul bank xizmetkerleri hám Client klası – bank klientleri ushın. Bunda Employee hám Client klassları Person klasına miyras qılıp jaratıladı. Sebebi, barlıq adamlar ya bank xizmetkerleri ya bank klientleri esaplanadı hám bunda Person klasınıń obyektin jaratıwdan heshqanday máni joq. Sonıń ushın Person klasın abstrakt qılamız: abstract class Person { private String name; 29 public String getName() { return name; } public Person(String name){ this.name=name; } public abstract void display(); } class Employee extends Person{ private String bank; public Employee(String name, String company) { super(name); this.bank = company; } public void display(){ System.out.println("Bank xızmetkeri atı: " + + super.getName(); System.out.println("Bank: " + bank); } } class Client extends Person { private String bank; public Client(String name, String company) { super(name); this.bank = company; } public void display(){ System.out.println("Klient atı: " + super.getName()); System.out.println("Bank: " + bank); } } public class Program{ 30 public static void main(String[] args) { Employee axmet = new Employee("Axmet", "AloqaBank"); axmet.display(); Client ali = new Client("Ali", "AloqaBank"); ali.display(); } } 7. Interfeysler Javada miyras klasslardı jaratıwda ózine tán qolaylılıqlar menen birge bazı bir sheklewleride bar. Máselen, funkcionaldı miyras qılıp tek bir klasstan alıw múmkin. Yaǵnıy, miyrasxor klasslar tek ǵana bir klasstıń múmkinshiliklerin miyras qılıp aladı. Bul mashqalanı sheshiw ushın Java jaratıwshıları interfeyslerdi islep shıqqan. Yaǵnıy, interfeys bul ózinde bazı bir funkcionalı bar, biraq konkret realizaciyası joq. Olardı realizaciya qılıw ushın bolsa, arnawlı klasslar jaratıladı hám bir klass birneshe interfeyslerden paydalanıwı múmkin. Interfeysten paydalanıw ushın interface gilt sózi isletiledi. Mısalı: interface Natiyje{ void print(); } Joqarıdaǵı interfeys Natiyje dep ataladı. Interfeysler ishinde konstantalar, metodlar bolıwı múmkin, biraq olar heshqanday algoritm orınlamaydı. Yaǵnıy, olar abstrakt metodlarǵa uqsap ketedi. Joqarıdaǵı mısalda print metodı bar, biraq heshqanday algoritmi joq. Basqa bir klassta interfeys múmkinshiligin paydalanıw ushın implements gilt sózi isletiledi. public class Program{ public static void main(String[] args) { Book b1 = new Book("Programmalastiriw", "A.Orınbaev"); b1.print(); } } interface Natiyje{ void print(); 31 } class Book implements Natiyje{ String name; String author; public Book(String name, String author){ this.name = name; this.author = author; } public void print() { System.out.printf("%s (%s) \n", name, author); } } 8. static maydanlar, metodlar hám klasslar Javada ápiwayı maydanlar, metodlardan basqa statikalıq maydanlar, metodlar bar. Máselen, tiykarǵı main metodı statikalıq metod esaplanadı. public static void main(String[] args) {} Statikalıq maydanlar, metodlardı táriyplewde static gilt sózi isletiledi. Statikalıq emes maydanlarda klasslardıń obyektlerin jaratıw waqtında hár bir obyekttiń óziniń nusqası jaratıladı, al statikalıq maydanlarda bir klass ushın ulıwma jaratıladı. Statikalıq maydanlar hám metodlardan paydanlanıw waqtında klass obyektin jaratpay turıpta isletiw múmkin. public class Program{ public static void main(String[] args) { Person tom = new Person(); Person bob = new Person(); tom.displayId(); // Id = 1 bob.displayId(); // Id = 2 System.out.println(Person.esaplagish); // 3 // Person.esaplag’ishti o’zgertemiz Person.esaplagish = 8; Person sam = new Person(); sam.displayId(); // Id = 8 } } class Person{ private int id; static int esaplagish=1; Person(){ id = esaplagish++; } public void displayId(){ System.out.println("Id: " + id); } } 9. final maydanlar, metodlar hám klasslar Ózgeriwshilerdiń aldına final gilt sózi jazılsa, olar konstantaǵa aylanatuǵını sizge málim. Mısalı, final double PI = 3.14. Eger metod aldına final gilt sózi jazılsa, onda bul metodtı basqa miyrasxor klasslarda qayta jazıp bolmaydı. Yaǵnıy palimorfizm islew múmkinshiligin bermeydi. Mısalı, public final void metod(){} Eger final gilt sózi klass aldına jazılsa, onda bunda klasslardıń miyrasxor klası bolmaydı. Mısalı, public final MyClass{} 10. Anonim klasslar Anonim klasslar bul atqa iye bolmaǵan lokal klasslar esaplanadı. Anonim klasslardı basqa klasslarlar menen keńeytiwge (extends) boladı. Bunday klasslardı táriyplew new gilt sózı arqalı hám sol waqıttıń ózinde obyektin jaratıw arqalı ámelge asırıladı. Anonim klasslar birneshe metodlardı hám sonıń menen birge ózińizdiń jeke metodıńızdı paydalanıw waqtında qol keledi. Eger programmańızda klasstan tek ǵana bir márte paydalanatuǵın bolsańız, onda anonim klasslardan paydalansańız boladı. Anonim klasslardı túsiniw ushın joqarıdaǵı mısalǵa tómendegishe anonim klass qosıwımızǵa boladı. new Computer(){ void superComp(){ Proccessor qosıldı RAM qosıldı Proccessor óshti RAM óshti 20 this.i7.start(); this.i7.shutdown(); } }; 11. Konstrukturlar 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. package klasslar; public class Mashina { public String model=""; Mashina modeli: Lacetti Mashina tezligi: 180 Mashina reni: qara Mashina modeli: Malibu Mashina tezligi: 220 Mashina reni: aq 10 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); } } 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. 12. Getter hám setter metodlar get yamasa is sózinen baslanıwshı metodlarda júdá kóp. Bunday sózlerden baslanıwshi metodlar tek ǵana JFrame de emes, al basqa barlıq komponentalarda bar. Eger metod set sózinen baslansa, onda bul metod arqalı qandayda bir parametrin ornatıw, tazadan mánis beriw túsiniledi. Mısalı, JFrame niń atama qatarı dáslep bos boladı, oǵan qandayda bir tekst jazıw setTitle metodınan paydalanıladı. ayna.setTitle("Birinshi programma"); Al get sózinen baslansa, sol komponentanıń tiyisli mánisi alınadı. Yaǵnıy bizge JFrame atama qatarındaǵı jazılǵan tekstti alıw kerek bolsa, onda getTitle metodınan paydalanıladı. Mısalı: String s = ayna.getTitle() 13. JTextArea komponentası Kópqatarlı tekst maydanshasınıń ápiwayı tekst maydanshalardan parqı, bunda birneshe qatarlardan ibarat tekstlerdi kiritiw múmkin. Kóp qatarlı tekst maydanshalarında tek ǵana uzınlıǵın emes (simvollar sanı), al biyikliginde (qatarlar sanın) ózgertiwge boladı. JTextArea komponenti formaǵa taslaǵanda avtomat túrde JScrollPane konteyneri ishine jaylasadi. 14. JTextField komponentasi Tekstli maydansha JTextField paydalanıwshı interfeyslerinde kóp ushırasatuǵın eń ápiwayı komponentlerden biri. Swing kitapxanasında 2 tekstli maydansha bar. Birinshisi JTextField klass kórinisindegi hám 1 qatarlı tekst kiritiw múmkinshiligine iye.Ekinshisi JTextField klasınan miyras bolǵan PasswordField kórinisindegi klass bolıp, jabıq kórinistegi maǵlıwmatlardı (ádette parollerdi) kiritiwge arnalǵan. Tekstli maydanshalardıń tiykarǵı qásiyetleri 7.1- kestede keltirilgen 15. JFormattedTextField komponentası Kiritiliwshi maǵlıwmattıń formatın anıqlawshı JFormattedTextField ápiwayı JTextField komponentinen miyras qılıp alınǵan. Bul komponent 67 maǵlıwmatlardı arnawlı tekst formatlarında súwretleydi hám paydalanıwshıǵa maydandaǵı format boyınsha maǵlıwmat kiritiwin támiynleydi. 16. JSpinner komponentası —-------- 17. JTextPane komponentası EditorPane nen miyras bolǵan JTextPane programmada kóp funkciyalı tekst redaktorın jaratıwda qollanıladı. JTextPane klası JEditorPane klasınıń barlıq múmkinshiliklerin ózinde jámlegen halda, oǵan tekst stillerin qosadı. Ápiwayı brawzer programmasın jaratıw mısalın qarayıq. Taza proyekt, JFrame jaratamız. JFrame ge 1 JPanel (reńin ózgertemiz), 1 JTextField (shriftin ólshemlerin ózgertemiz), 1 JButton (shriftin ózgertemiz) hám 1 EditorPane taslaymız hám 7.2-súwrettegidey dizayn jaratamız. 66 7.2-súwret. Brawzer programması dizaynı JButton Action waqıyasına tómendegishe kod jazamız: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { try { String initialURL = jTextField1.getText().trim(); jTextPane1.setPage(initialURL); } catch (IOException ex) { Logger.getLogger(BrawserJFrame.class.getName()). log(Level.SEVERE, null, ex); } } 18. Swingde menyular Menyular hár bir programmanıń ajıralmas bólegi esaplanadı. Sebebi, menyular paydalanıwshılar ushın programmadan paydalanıwda kóplegen funkcionallıq múmkinshiliklerdi beredi. Swing usılardı esapqa alǵan halda, menyulardıń keńeytirilgen klasın qollap quwatlaydı. Swing quramındaǵı menyulardiń tómendegishe túrleri bar: - Menyular qatarı - tiykarǵı menyu esaplanadı; - Standart menyu - birneshe punktleri bar bolǵan menyu; - Kontekstli menyu - tıshqansha oń tárepin basqanda payda bolatuǵın menyu. - Instrumentler paneli - programmanıń funkcional múmkinshiliklerinen tez paydalanıw ushın. Swing kitapxanasında menyulardı qollap quwatlawshı klasslar dizimi 11.1- kestede keltirilgen. 19. JSlider komponentası 20. Graphics hám Graphics2D klassları Grafikalıq paydalanıwshı intefeyslerinde grafikalıq sızılmalar sızıw ushın arnalǵan paint metodı bar bolıp, bul metod komponentti ekranǵa shıǵarıw kerek bolǵanda shaqırıladı. Bul metodta tipi abstrakt klass Graphics bolǵan, bir argument bar. Bul abstrakt klassta birneshe metodlar bolıp, olar grafikalıq elementlerdi, yaǵnıy, tuwrı sızıq, tuwrı tórtmúyeshlik, kópmúyeshlik, oval, dóńgelek, tekstler hám súwretlerdi sızıw ushın arnalǵan. Component klası miyrasxorları paint metodı hám Graphics klasınan paydalanıp, óziniń sırtqı kórinisine sızılmalar sıza aladı. Graphics klası metodları: 146 drawLine(x1, y1, x2, y2) - bul metod qalıńlıǵı 1 pikselge teń bolgan, hám (x1, y1) hám (x2, y2) noqatlarınan ótiwshi sızıq sızadı. drawRect(int x, int y, int width, int height) – bul metod shep joqarǵı múyeshi koordinataları (x,y) noqatlarınan ótiwshi, al eni hám biyikligi width hám heigth ge teń bolgan tuwrı tórtmúyeshlik sızadı. raphics2D klası Dáslep sonı aytıp ótiw kerek, komponentalardı MVC kóz qarası menen qaraytuǵın bolsaq, ol 3 bólimnen turadı: Model – model ózinde komponenttiń barlıq maǵlıwmatları: halatı, ózin tutıwı sıyaqlılardı saqlaydı. View – komponentanıń visual kórinisin támiynleydi. Controller – komponetanı basqarıwǵa juwap beredi (klaviatura, tıshqansha waqıyaları hám basqada kiritiw qurılmaları) Swingde derlik barlıq standart komponentalar MVC tiykarında qurılǵan. Máselen, JButton – ButtonModel ózin tutıwı hám halatına (Controller hám Model) 149 juwap berse, ButtonUI óz gezeginde komponenta sırtqı kórinisine juwap beredi (View). Demek bunnan kórinedi Graphics2D arqalı barlıq interfeystı, sonday-aq, 2 ólshemli súwretlerdi sızıw múmkin. 21. SWING texnologiyasi Swingde jaratılǵan grafikalıq paydalanıwshı (GPI) interfeysi quramına 2 túrdegi elementler kiredi. Olar: komponenta hám konteyner. Bunday bóliniw shártli túrde, sebebi konteynerde komponenta esaplanadı. Komponenta bul ǵáresiz element bolıp, olarǵa túymeler, tekstli maydanshalar kiredi. Konteynerde bolsa, birneshe komponentalar jaylasıwı múmkin. Komponenta ekranda kóriniwi ushın konteynerge 36 jaylastırılıwı kerek. Solay etip, GPI quramında eń keminde 1 konteyner boladı. Konteynerler óz gezeginde komponenta bolǵanlıqtan, bir konteyner ekinshi bir konteynergede jaylasıwı múmkin. Bul konteynerler ierarxiyasın payda etedi hám ierarxiya joqarısında joqarı dárejedegi konteyner jaylastırıladı. Swing de 2 túrdegi konteynerler bar. Birinshi tipke joqarı dárejeli konteynerler kiredi: JFrame, JApplet, JWindow, hám JDialog. Ekinshi tip bolsa, ekinshi dárejeli: JPanel, JRootPane. Swingdegi barlıq komponentalar, klasslar javax.swing paketinde jaylasqan hám tómendegi kestede keltirilgen. 22. JPasswordField komponentasi Tekstli maydansha JTextField paydalanıwshı interfeyslerinde kóp ushırasatuǵın eń ápiwayı komponentlerden biri. Swing kitapxanasında 2 tekstli maydansha bar. Birinshisi JTextField klass kórinisindegi hám 1 qatarlı tekst kiritiw múmkinshiligine iye. Ekinshisi JTextField klasınan miyras bolǵan PasswordField kórinisindegi klass bolıp, jabıq kórinistegi maǵlıwmatlardı (ádette parollerdi) kiritiwge arnalǵan. Tekstli maydanshalardıń tiykarǵı qásiyetleri 7.1- kestede keltirilgen. 23. JProgressBar komponentası Process dawamlılıǵın kórsetiwshi indikatorlar grafikalıq interfeyslerde keń qollanıladı. Bul tiptegi komponentalar máseleniń qansha bólegi orınlanǵanlıǵın paydalanıwshıǵa grafikalıq sızıqlar kórinisinde xabar berip turadı. Yaǵnıy, másele juwmaǵına jaqınlasqan sayın indikator sızıǵıda uzayıp baradı. Bunday indikatorlar ushın javada JProgressBar klasınan paydalanıladı. JProgressBar klasında 8.2-kestede kórsetilgen konstruktorlar bar. Process indikatorı gorizantal yamasa vertikal kóriniste bolıwı múmkin. Eger indikator parametrleri anıq kórsetilmegen bolsa, mánisler diapazonı 0 den 100 ge shekem hám dáslepki mánisi 0 ge teń boladı. 24. FileReader hám FileWriter klassları ?---- 25. Klasslardı ishpe-ish jaylastırıw Bir klass ishinde birneshe klasslardı jaratıp paydalanıwǵa boladı. Bunday klasslar ishpe-ish klasslar dep ataladı. Mısalı, kompyuter klasın jaratıw kerek bolsın. Biz bilemiz, kompyuter processordan, operativ yadtan hám t.b. qurılmalardan turadı. Sonıń ushın Computer klası ishine processor hám RAM klassların jaratayıq. Bul klasslar ishine start hám shutdown metodların jaratamız. Al metodlardıń ishine bolsa, String tipindegi ózgeriwshi alıp onıń mánisi dáslep “óshti” boladı. Qashan start metodı shaqırılsa mánisi “qosıldı” boladı hám nátiyjege shıǵaramız. Al shutdown metodı shaqırılsa mánisi qaytadan “óshti” boladı hám nátiyjege shıǵaramız. Yaǵnıy kerekli metodtı shaqırıw arqalı óshirip, qosıw imkaniyatına iye bolamız. package misal3; public class Computer { //Processor klasın jaratamız class Processor{ String isStart = "óshti"; public void start(){ isStart = "qosıldı"; System.out.println("Proccessor "+isStart); } public void shutdown(){ isStart = "óshti"; System.out.println("Proccessor "+isStart); } } //RAM klasın jaratamız class RAM{ String isStart = "óshti"; public void start(){ isStart = "qosıldı"; System.out.println("RAM "+isStart); 200 km/saat tezlik 600 km/saat tezlik 150 km/saat tezlik 19 } public void shutdown(){ isStart = "óshti"; System.out.println("RAM "+isStart); } } Processor i7 = new Processor(); RAM kingston = new RAM(); } package misal3; public class Misal { public static void main(String[] args) { Computer comp = new Computer(); comp.i7.start(); comp.kingston.start(); comp.i7.shutdown(); comp.kingston.shutdown(); } } Download 0.83 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling