Obyektke baǵdarlanǵan programmalastırıw principleri


Download 0.83 Mb.
Sana06.11.2023
Hajmi0.83 Mb.
#1751183
Bog'liq
raxat


Dasturlew



  1. 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.



  1. 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();
}
}
}

6. Abstrakt klasslar


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'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling