|
1
|
- Róbert Novotný
- robert.novotny@upjs.sk
- 28. 9. 2006
|
|
2
|
- Teoretické cvičenie
- piatok, 11.00, P17
- prednáškové zameranie
- Praktické cvičenia
- Všetky inštrukcie na
- http://ics.upjs.sk/~novotnyr/vyucba/paz1c
|
|
3
|
- 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%)
|
|
4
|
- Java
- výslovnosť
- džova (Gosling a iní zakladatelia)
- džava
- ,,To sú tí Američania, čo čítajú body ako báádíí"
- java (Poliaci a Rusi;-))
- objektovo orientovaný programovací jazyk
- základný softvér týkajúci sa Javy
- budeme používať verziu 5, resp. 6.
|
|
5
|
- WORA: write once, run anywhere (Napíš raz, spusti hocikde)
- kódenie na Windowse
- nasadenie na Solaris
- platformová nezávislosť
- Windows
- Linux
- mobil
- sonda Mars Spirit
- tony kvalitných knižníc a nástrojov
- väčšina zadarmo
- obrovská komunita, haldy a haldy kníh, seriálov...
|
|
6
|
- malé spustiteľné súbory
- ,,Heh. Až na to osemmegové JRE"
- žiadne smerníky
- syntax prebratá z Ccka
|
|
7
|
- Používateľ sa často stretáva s tými najhoršími stránkami Javy
- applety: hrozné, pomalé, nepoužiteľné
- applety tvorili veľmi malý podiel programov v Jave
- historicky na odchode
- bežné aplikácie: hrozné, pomalé, nepoužiteľné
- situácia sa zo dňa na deň zlepšuje
- ,,Porovnaj Together a Eclipse"
- pozri JAlbum, či Azureus
- Java 7 zameraná na použiteľnosť bežných aplikácií
|
|
8
|
- komerčné spoločnosti => množstvo pracovných ponúk
- Java je v súčasnosti na čele medzi požiadavkami
- veľká perspektíva
|
|
9
|
- Spomni Pascal:
- F9 kompiluje a zároveň spúšťa. Všetko sa deje na pozadí
|
|
10
|
- Pravý programátor používa príkazový riadok a notepad/vi.
- Kompilácia
- Spustenie
|
|
11
|
- Potrebujem mať nainštalovaný Java Development Kit (zadarmo)
- http://java.sun.com
- inštrukcie na domácu inštaláciu budú na stránke
- Prostý ľud používa integrované vývojové prostredie
- Eclipse od IBM (zadarmo)
- NetBeans od Sunu (zadarmo)
- ,,začínali ako softvérový projekt na MFF UK v Prahe"
- IntelliJ IDEA
- najlepšie
- za ťažké peniaze
|
|
12
|
- Kedysi: procedurálne programovanie
- procedúry, funkcie, moduly (unity)
- Pascal, C, PHP...
- Dnes: objektovo orientované programovanie
- triedy, inštancie, metódy, interfejsy, dedičnosť
- ,,a mnoho iných odborných termitov"
- Java, C#, Delphi, Python...
|
|
13
|
- prirodzený pohľad
- objekty sú všade naokolo
- študent(i), prednášajúci, tabuľa,
- počítač, vypínač, strom,
- chlap, hrdina, dub, stroj...
|
|
14
|
- 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úť
|
|
15
|
- 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™
|
|
16
|
- 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
|
|
17
|
- 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ú
|
|
18
|
- 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
|
|
19
|
- 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
|
|
20
|
- class Pes {
- String rasa;
- float vek;
- }
|
|
21
|
- 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();
- }
- }
|
|
22
|
- 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.
|
|
23
|
- Deklaráciu (Pes dunčo;)
- a inicializáciu (dunčo = new Pes();)
- vieme zapísať jedným riadkom.
|
|
24
|
- 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);
- }
- }
|
|
25
|
- 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);
|
|
26
|
- 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.
|
|
27
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- void stekaj() {
- System.out.println("Haf!");
- }
- }
|
|
28
|
- void stekaj() { System.out.println("Haf!");
- }
|
|
29
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- void stekaj() {
- System.out.println("Haf!");
- }
- }
|
|
30
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- void stekaj() {
- if (vek < 1) {
System.out.println("Píp!");
- } else {
- System.out.println("Haf!");
- }
- }
- }
|
|
31
|
- Pes.java
- class Pes {
- String rasa;
- int vek;
- ...
- void pridajRok() {
- vek = vek + 1;
- }
- }
|
|
32
|
- String stekaj() {
- if (vek < 1) {
- return "Píp!";
- } else {
- return "Haf!";
- }
- }
|
|
33
|
- String stekaj(int pocet, boolean nahlas) {
- ...
- }
|