reklama

Programovanie pre úplných začiatočníkov - 2.časť

Dobrý deň, vítam Vás všetkých – kolegov mladších programátorov - pri druhej časti seriálu o programovaní. V minulej časti sme si predostreli základnú tému, ktorá sa bude viac - či menej opakovať. Preto som minulú lekciu trochu obmedzil do dĺžky, aby bolo všetko jasné.

Písmo: A- | A+
Diskusia  (35)

Je mi trochu ľúto, že som sa nedostal k ďalšej časti skôr, ale ako ste možno niektorí z Vás postrehli – pri presťahovávaní svojich vecí do veľkomesta mi vznikol problém s internetom a nemal som možnosť pridávať nové články. Ale aspoň ste mali chvíľu čas pre seba a hlavne pre hokej. Naši nevypadli, tak môžeme byť spokojný J   Ešte pripomeniem náš výučbový plán:
1.časť – Zloženie sveta – čo je okolo nás
2.časť – Vnútri nášho programu I
3.časť – Vnútri nášho programu II
4.časť – Premenné, konštanty a poďme spolu vetviť
5.časť - Cyklus – neposlušný priateľ programátora
6.časť - Chyby – prečo vznikajú a ako sa im dá zabrániť
7.časť - Súbory, súboríky a iné časti našich informácii

V prvej časti sme si ozrejmili, že celý náš svet sa skladá s objektov. A tieto objekty sú vytvárané podľa tried – teda podľa akejsi predlohy.   Odpovede na otázky

Aké sú ďalšie objekty sveta poznámkových blokov?

SkryťVypnúť reklamu
Článok pokračuje pod video reklamou


Našim produktom má byť poznámkový blok. A v článku sme identifikovali niektoré z jeho objektov - teda vo svete poznámkových blokov existujú: text, písmená, odstavec, bodky, čiarky, strana, riadok, nadpis, ...

Kedže som sa o ďalších s diskusie nedočítal – tak pre predstavu prikladám ešte niekoľko: súbor, hlavička, zápätie, čísla strán,...

A pre lepšiu predstavu ako náš svet vyzerá, pridávam nasledujúci obrázok, ktorý ukazuje, ako sú naše objekty pospájané do celkov.

Obrázok blogu

Pohľadajte v našom programe, aké objekty zatiaľ používa a z akých tried sú tieto objekty vytvorené. Skúste (v diskusii) polemizovať o tom, na čo tieto objekty našej aplikácii slúžia.

Povedali sme si základnú konštrukciu podľa ktorej hľadať triedy:  

SkryťVypnúť reklamu
reklama

class trieda_text {}

Slovíčko class nás a hlavne náš počítač upozorňuje, že za ním nasleduje trieda – v tomto prípade s názvom trieda_text. Je jasné, že z nej sa budú vytvárať objekty textu – viď obrázok vyšie.

Ďalšia programátorská konštrukcia je pre vytváranie objektu:


trieda_text objekt_text = new trieda_text();

Slovíčko trieda_text nás upozorňuje, akej triedy bude nový objekt. Slovíčko objekt_text nás upozorňuje, ako sa daný objekt bude volať.Slovíčko new trieda_text() nás upozorňuje, že sa vytvára nový (new) objekt triedy trieda_text.  A v našom programe Moja – napríklad súbor MojaView.java

public class MojaView extends FrameView {

SkryťVypnúť reklamu
reklama

----- tu je naša trieda. Ako sa volá táto trieda? No predsa MojaView (podobne sa volá aj súbor:D)  

busyIconTimer = new Timer(busyAnimationRate, new ActionListener() {

-----tu máme objekt busyIconTimer. Všimnime si, že tento objekt nemá pred svojim názvo triedu. Ak sa však pozrieme na riadok, tesne pred koncom súboru MojaTrieda.java

private final Timer busyIconTimer;

-----tak zistíme, že objekt busyIconTimer je vytváraný podľa triedy Timer. Všimnime si najmä konštrukciu new Timer(niečo). 

TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext());

-----a ešte klasika trieda – TaskMonitor, objekt menom taskMonitor, nový objekt z triedy TaskMonitor. !!!

SkryťVypnúť reklamu
reklama

Dôležité – pozor, pri čítaní názvov objekt a tried a pri ich používaní, záleží na veľkosti písmen – teda slovo taskMonitor a slovo TaskMonitor sú dve odlišné pomenovania!!!
 

Čo predstavujú políčka v palete - objekty alebo triedy? Aký je základný rozdiel medzi objektami a triedami?

Políčka v palete predstavujú šablony, podľa ktorých vytvárame objekty v našej aplikácii (teda triedy). Napríklad, objekt panelu, ktorý sme si v článku pridali, sa nám zobrazil na obrázku našeho formulára.

Obrázok blogu

Zdrojový text môžeme vidieť v súbore – JuchuView.java - prinášam jeho výsek, ktorý identifikuje pridanie objektu Panela:

private javax.swing.JPanel jPanel1;

-----naša trieda sa volá Jpanel (celým menom javax.swing.JPanel) a objekt jPanel1. Všimnime si tiež absenciu slova new.  

TAK A POĎME SI SPRAVIŤ ŠIALKU HORÚCEJ KÁVY, ALEBO KAKAA, ALEBO ČAJU...KAŽDÉMU PODĽA CHUTI


Načo sú nám objekty?

Poviete si, prečo to všetko? Prečo sa zapodievame nejakým svetom, objektami a triedami. Načo nám to bude. Veď mi chceme programovať a nie sa zaoberať nejakým svetom.

Problém však je to, že mi ideme programovať reálny svet. A preto skôr ako sa vrhneme do hard-working kódenia, je potrebné aby sme si ujasnili, čo vlasne ideme programovať.  

Musím však uznať, že samotné objekty neriešia náš problém – ako naprogramovať aplikáciu textového editora. Veď reálne objekty v našom svete majú nejaké vlasnosti, nejaké správanie. A tieto naše? Tie len sú. Nič viac nerobia. Nič viac.   Červené jablko a orientácia na juh  

A figu borovú! Naše objekty vlastnosti majú. Však zoberme si taký objekt textu. Potrebuje mať svoju veľkosť. Či je bold. Či je písaný kurzívou. Či je podčiarknutý. To všetko musí náš objekt zvládnuť. Inak by fakt bol k ničomu.   Naša prvá trieda – a zároveň objekt :D

Keďže objekty vytvárame pomocou tried, tak na špecifikovanie objektu textu, potrebujeme triedu. Túto triedu si nazveme TextTrieda.

Táto trieda musí uchovávať – musí mať – nasledujúce informácie:

- veľkosť textu – napriklad 10, 12, 14, 16, 18, 20, 30, .... (túto informáciu si nazveme velkostTextu)

- či je podčiarknutá (podciarknuta)

- či je bold (bold)

- či je kurzíva (kurziva)  

POZN: V názvoch tried, vlastnosti nepoužívame diakritiku!!!  

V grafickom svete diagramov si túto triedu môžeme nakresliť takto:

Obrázok blogu

Vidíme, že naše vlastnosti (, ktoré nám uchocácajú informáciu o stave), sú uvedené v rámčeku Attributes – po slovensky atribúty. Budeme ich teda tak volať. Sú to atribúty triedy TextTrieda. A basta! :D  Čo je moje, nie je tvoje – ochrana údajov vyplýva zo zákona!!!

Myslím, že ste postrehli slovíčka private a int na predchádzajúcom obrázku. Int si ešte chvíľu odložíme na bok. A budeme sa venovať slovíčku private. Toto slovo má ešte ďalších bratov – protected a public. Spolu nám určujú pravidlá na prístup k atribútom danej triedy.  

Trieda ako taká potrebuje vyjadriť skutočnosť, že objekt si chce chrániť svoje údaje. Napríklad človek nebude každému ukazovať svoju zdravotnú kartu. Svoj občiansky preukaz tiež nedávate hocikomu do ruky. A číslo bankového účtu, pin od bankomatovej karty, login a heslo od vášho emailu. To všetko sú Vaše osobné informácie – atribúty – ktoré sú súkromné, privátne a teda private – vidí ich len vlasník.  

Ďalšie informácie, napríklad farbu Vašich vlasov, typ oblečenia,spôsob chôdze – to všetko sa môže človek zistiť už len keď Vám venuje jeden pohľad. A tak tieto vaše atribúty sú verejné – a teda public – môže ich vidieť hocikto vo vašom okolí.  

A ešte je tu jeden typ. Ten sa volá protected. Je zahalený rúškom tajomstva, sú to veci, ktoré poviete len svojím známym – rodine – potomkom. Áno sú to tie informácie, ktoré o Vás vedia Vaši synovia a dcéry – ak ich nemáte, tak porozmýšľajte, čo viete na svojich rodičov – o čom iný netušia.

A ešte som dlžný vysletlenie . . private int velkostTextu . . znamená, že veľkosť textu je súkromná informácia v triede TextTrieda.


CHECKPOINT 1
Objekty majú atribúty – a tie uchovávajú infošky o aktuálnom stave. Tieto atribúty sú opísané v daných triedach objektov a v nich sa rozhoduje aj o pravidlách prístupu.

ÚLOHA 1 (pre skúmavých)
Skúste zistiť príčinu, prečo všetky atribúty danej triedy TextView sú private? Čo znamená keď sa private a public použijú pri triede. A pozrime sa aj do našej aplikácie, kde všade sú tieto slová spomenuté.

Atribúty, čísla, reťazce a blbostičky, ktoré chceme vedieť

Bohužial, nenapadol ma iný názov, ako tento. Pravdepodobne sú moje tvorivé dni zrátané – takže už len vecne. A pekne z ostra. Odložili sme si slovíčko int. No a tak sa musíme k nemu vrátiť – je mi ľúto ho vyhodiť. :O

Naše atribúty sú informácie. Informácie, ktoré treba nejako reprezentovať. Nejako ich vyjadriť napísať. Aby sme vedeli o čo ide a čo sa nám to ten objekt z danej triedy snaží povedať.  

Prvým vyjadrením informácie je ďalší objekt. Je to jednoduché. Objekt človek vlastní informáciu o svojom zdravotnom stave a teda má atribút zdravotnaKarta, ktorý je z triedy ZdravotnaKartaTrieda.  

private ZdravotnaKartaTrieda zdravotnaKarta;  

Už vieme čo je private. Tak sa z toho teším, sakra.

Ďalším spôsobom reprezentácie je typ áno/nie. Jednoduché vyjadrenie toho, či niečo spĺňa nejakú podmienku, alebo nie. Tento typ sa volá boolean (pre fajnšmekrov – odporúčam booleovskú algebru). Napríklad pre našu triedu textu TextTrieda.  

private boolean bold;  

-----vyjadruje, či je zapnutý bold, alebo nie  

A má hodnoty true(áno)/false(nie). Keď napíšeme:   bold = true;

znamená to, že je zapnutý bold, a písmo textu bude hrubé. bold = false;

znamená, že text bude normálny.  

Ďalej prichádzajú na rad čísla. Milovníci matematiky sa určite potešili, pre ostatných dodávam, že eurá bude musieť počítať každý a tak je dobré sa s číslami zoznámiť.

Máme tu celé čísla, ktoré sú typu int. Sú to čísla -1,-2,..., 0, 1, 2, 3,....  

private int velkostPisma;

-----asi si vieme predstaviť, čo to znamená.  

velkostPisma = 10;

-----nastavíme veľkosť písma na hodnotu 10.  

A posledným typom je typ textu – reťazec – pretože je spletený do reťaze písmen. Tento typ sa volá String.  

private String meno;

-----textový reťazec určujúci meno.  

meno = "Peter";

-----týmto som povedal, že meno je Peter – trochu odo mňa egoistické. Reťazec je učený dvojtými hornými uvodzovkami – určujú ľavý a pravý okraj celého reťazca.  

A teda prinášam záverečný pohľad na našu triedu TextTrieda:

Obrázok blogu

CHECKPOINT 2
Reprezentovať zálkladné typy informácie. Informácie, ktoré sú dané iným objektom, aj také ktoré sú číselné, aj typ áno/nie, a nakoniec aj textové informácie.  

ÚLOHA 2
Aké sú ďalšie typy pre čísla v Jave? (je ich viac ako len int)


Netbeans a triedy v jave

Na koniec si trochu uvoľníme myšlienky. Ideme si vytvoriť našu prvú triedu v jave.
Presunieme sa do našeho projektu Moja. Otvoríme Source Packages – a klikneme pravým tlačidlom myši na package moja. Otvorí sa nám menu a z neho klikneme na New -> Java Class. Class znamená po anglicky trieda, takže sme na správnej ceste.Skontrolujme svoje kroky podľa nasledujúceho obrázka. 

Obrázok blogu

Po tomto úkone sa nám zobrazí dialógové okno pre vloženie novej triedy.

Obrázok blogu

 Prepíšeme ClassName na názov našej triedy – teda TextTrieda. A klikneme dole na tlačidlo Finish. Tým sa nám vytvorí do našeho projektu nová trieda.

Obrázok blogu

Jej zdrojový súbor je takýto:

/* * To change this template, choose Tools | Templates 

* and open the template in the editor. 

*/ 

package moja; 

/** 

* @author pjetro  

*/

public class TextTrieda { 

}

Do neho dopíšeme informácie o našich atribútoch: 

 /* * To change this template, choose Tools | Templates 

* and open the template in the editor. 

*/ 

package moja; 

/** 

* @author pjetro 

*/

public class TextTrieda {

 //atribúty 

private int velkostPisma; 

private boolean bold; 

private boolean kurziva; 

private boolean podciarknute;

} 

A je to!  

CHECKPOINT 3
Vieme si spraviť do programu triedu.:)))) to sa nám ešte zíde:D

ÚLOHA 3
Skúste si nakresliť na papier triedy pre objekty: text (už máme), písmeno, odstavec, bodky, čiarky, strana, nadpis, súbor. Ako a v ktorej triede budete reprezentovať informácie – názov súboru, čísla stránky a iné? A vlastne, aké informácie bude potrebné uchovávať pre textový editor?

Break - Fast

Ešte si neodpustím pár poznámok k jave:  

{....} - - toto ohraničuje blok textu, napriklad

public class TextTrieda {....všetko čo patrí do triedy TextTrieda....}

 /*

 toto je viacriadkový komentár a nemá vplyv na to,

čo programujeteslúži len pre vašu informáciu

*/ 

//toto je jednoriadkový komentár – tiež slúži len pre Vašu informáciu 

; tento znak ; sa používa na oddelenie príkazov – slov  

Skúste si prehliadnúť zdrojové texty našeho programu, a nájsť výskyty týchto konštrukcii. Pomôže Vám to v orientácii v zdrojovom súbore.  

A čo nabudúce?

Nabudúce sa dozviete odpovede na úlohy (bol by som rád, keby ste ich prezentovali v diskusii) a spoznáme ďalšie zákutia čarovného sveta vnútri nášho programu.  

Ešte sa Vám chcem poďakovať za emaily, icq správy a príspevky na diskusii – dokonca som sa dopočul o tomto seriály aj na iných fórach. Je to super zistiť, že moja robota naozaj prispieva v tej oblasti, na ktorú je zameraná.  

Pekný zvyšok programovania.

Peter Dodok

Peter Dodok

Bloger 
  • Počet článkov:  41
  •  | 
  • Páči sa:  0x

Počítače a blikajúci monitor sú mojím zamestnaním, zelený svet a modré nebo sú mojím koníčkom, srdce a myšlienky sú mojím hriechom,.

Prémioví blogeri

Jiří Ščobák

Jiří Ščobák

754 článkov
Iveta Rall

Iveta Rall

88 článkov
Karolína Farská

Karolína Farská

4 články
Lucia Šicková

Lucia Šicková

4 články
Matúš Sarvaš

Matúš Sarvaš

3 články
reklama
reklama
SkryťZatvoriť reklamu