|
1
|
- Róbert Novotný
- robert.novotny@upjs.sk
- 17. 9. 2008
|
|
2
|
- Teoretické cvičenie
- prednáškové zameranie
- streda, 10.00, P8
- Praktické cvičenia
- pondelok, 7.00, P13 (cez víkend v noci ;-)
- piatok, 9.00, P3
- piatok, 14.00, P4
- Všetky inštrukcie na
- http://ics.upjs.sk/~novotnyr/vyucba/paz1c
|
|
3
|
- toto je tretí semester programovania
- od študenta sa očakáva
- znalosť základného procedurálneho
programovania
- viem, čo je cyklus, podmienka, premenná,
dátový typ, metóda (procedúra, funkcia)
- mlžné predstavy o OOP
- základné predstavy o programovacích
technikách a algoritmoch
|
|
4
|
- Požiadavky:
- Účasť na praktických cvičeniach (20%)
- Domáce úlohy (raz za dve cvičenia) (30%)
- Záverečný projekt (30%)
- Test po precvičení dedičnosti (20%)
|
|
5
|
|
|
6
|
- prirodzený pohľad
- objekty sú všade naokolo
- študent(i), prednášajúci, tabuľa,
- počítač, vypínač, strom,
- chlap, hrdina, dub, stroj...
|
|
7
|
- zamyslime sa nad objektom:
- o čom má objekt vedomosti (stav)
- aké činnosti dokáže vykonávať
- príklad: vypínač
- stav: je zapnutý/vypnutý
- činnosti: dokáže sa (= dokážeme ho)
zapnúť a vypnúť
|
|
8
|
- príklad: empétrojka
- stav:
- má názov
- má interpreta
- má dĺžku
- veľkosť dátového toku (128 kbps, 190 kbps...)
- schopnosť:
- dokáže sa prehrať
- dokáže sa preniesť do MP3 walkmana™
|
|
9
|
- trieda: predstavuje koncept, resp. pojem
- príklad: pes
- čo majú spoločné všetky psy
- aký je koncept ,,psovitosti". Dohodnime sa:
- 4 nohy, chvost, chlpy
- breše
|
|
10
|
- trieda: všeobecný abstraktný pojem
- Pes: 4 nohy, chvost, chlpy, breše
- objekt: konkrétny hmatateľný
- objekt spĺňajúci podmienky danej triedy:
- Rex, Ariel Hviezdička, Lajka
- trieda je predlohou pre inštancie pojmy objekt a inštancia sa
zamieňajú
|
|
11
|
- trieda vs. objekt
- definícia vs. príklad
- def: bodom nazývame usporiadanú dvojicu (x, y)...
- príklad: A = (2, 3)
- abstraktný pojem vs. konkrétna vec
- slovo v slovníku vs obrázok
- tlačivo vs. dáta v ňom
|
|
12
|
- jemne upravíme našu definíciu psa
- psa:
- 4 nohy – nie až taká dôležitá
vlastnosť
- chvost, chlpy... – rovnako neveľmi
dôležité
- rasa – porovnaj dve inštancie
- vek
- ... iné podľa dohody
- breše – dôležitá: dva psy môžu
brechať inak
- ... iné podľa dohody
|
|
13
|
- class Pes {
- String rasa;
- float vek;
- }
|
|
14
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- }
- PesTester.java
- class PesTester {
- public static void main(String[] args) {
- Pes dunčo;
- dunčo = new Pes();
- }
- }
|
|
15
|
- Pes dunčo;
- trieda je užívateľom definovaný
dátový typ
- dunčo = new Pes();
- inicializácia premennej
- new Pes() = vytvor novú inštanciu (objekt) typu Pes
- priraď ju do premennej dunčo typu Pes.
|
|
16
|
- Deklaráciu (Pes dunčo;)
- a inicializáciu (dunčo = new Pes();)
- vieme zapísať jedným riadkom.
|
|
17
|
- PesTester.java
- class PesTester {
- public static void main(String[] args) {
- Pes dunčo = new Pes();
- dunčo.rasa = "slovenský čuvač";
- dunčo.vek = 8;
- System.out.println(dunčo.rasa);
- System.out.println(dunčo.vek);
- }
- }
|
|
18
|
- pozorný čitateľ si domyslí class a main(...)
- Pes dunčo = new Pes();
- dunčo.rasa = "slovenský čuvač";
- dunčo.vek = 8;
- Pes rambo = new Pes();
- rambo.rasa = "ťažko povedať";
- rambo.vek = 3;
- System.out.println(dunčo.rasa);
- System.out.println(dunčo.vek);
- System.out.println(rambo.rasa);
- System.out.println(rambo.vek);
|
|
19
|
- objekt má stav a schopnosti
- schopnosti sú záležitosti, ktoré sa
dajú v ľudskej reči vyjadriť slovesom
- štekaj! stoj! (udaj! kusaj!)
- štekanie zapíšeme ako procedúru / funkciu
zviazanú s danou triedou
- takáto procedúra / funkcia sa nazýva metóda.
|
|
20
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- void stekaj() {
- System.out.println("Haf!");
- }
- }
|
|
21
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- void stekaj() {
- if (vek < 1) {
System.out.println("Píp!");
- } else {
- System.out.println("Haf!");
- }
- }
- }
|
|
22
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- ...
- void pridajRok() {
- vek = vek + 1;
- }
- }
|
|
23
|
- String stekaj() {
- if (vek < 1) {
- return "Píp!";
- } else {
- return "Haf!";
- }
- }
|