objektorienteeritud programmeeriminekodu.ut.ee/~eno/oop13/oop13loeng15v.pdf•eksami eel kõik...

Post on 14-Oct-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Objektorienteeritud programmeerimine

15. loeng

20. mai

Eno Tõnisson

1

Kasutatud

• H. Heina loengumaterjalid

• J. Kiho Väike Java leksikon

• J. Kiho Java Programmeerimise aabits

• Y. D. Liang Introduction to Java Programming

• Java tutorial. Java kodulehel

• http://www.1001javatips.com/

• http://www.java-tips.org

2

Eelmisel nädalal

• loeng

– i18n

• praktikum

– kontrolltöö, lõimed

3

Umbes mitu tundi tegelesite eelmisel nädalal selle ainega (loeng+praktikum+iseseisvalt)?

1. paariline

4

1. 2. 3. 4. 5. 6. 7. 8.

0% 0% 0% 0%0%0%0%0%

1. 0-2 tundi

2. 2-4 tundi

3. 4-6 tundi

4. 6-8 tundi

5. 8-10 tundi

6. 10-12 tundi

7. 12-14 tundi

8. üle 14 tunni

Kuivõrd olete selle ainega graafikus? 1. paariline

5

1. 2. 3. 4. 5.

0% 0% 0%0%0%

1. Isegi ees

2. Täiesti graafikus

3. Veidi maas, aga saan ise hakkama

4. Kõvasti maas, vajan abi

5. Ei oska öelda

Umbes mitu tundi tegelesite eelmisel nädalal selle ainega (loeng+praktikum+iseseisvalt)?

2. paariline

6

1. 2. 3. 4. 5. 6. 7. 8.

0% 0% 0% 0%0%0%0%0%

1. 0-2 tundi

2. 2-4 tundi

3. 4-6 tundi

4. 6-8 tundi

5. 8-10 tundi

6. 10-12 tundi

7. 12-14 tundi

8. üle 14 tunni

Kuivõrd olete selle ainega graafikus? 2. paariline

7

1. 2. 3. 4. 5.

0% 0% 0%0%0%

1. Isegi ees

2. Täiesti graafikus

3. Veidi maas, aga saan ise hakkama

4. Kõvasti maas, vajan abi

5. Ei oska öelda

Täna

• Võrguprogrammeerimine

• Eksamist

8

Edasi • http://kodu.ut.ee/~eno/oop13/OOP2013lopus

irge.html

9

Järelvastamine

• Loengute järelvastamine, kui punkte vähem kui 5 – kuni 31. mai

– punktid lähevad kirja ainult eksamile pääsu arvestamiseks, hinnet määravasse üldsummasse ei lähe

• Praktikumide järelvastamine, kui punkte vähem kui 32 – kuni 16. nädala praktikumini

– punktid lähevad kirja ainult eksamile pääsu arvestamiseks, hinnet määravasse üldsummasse ei lähe

10

Korduseksam

• Korduseksamieelne 1. KT järeltöö

• Korduseksamieelne 2. KT järeltöö

• Korduseksam 20. juuni

11

Punktid

• Eksamile pääsemiseks peab olema

– praktikumidest (sh. rühmatööd) kogutud vähemalt 32 punkti,

– loengutest vähemalt 5 punkti.

• Eksamitöö 35 punkti.

• Eksami eel kõik punktid kogutud.

– Väljaarvatud 27. mai eksami puhul kolmapäevaste praktikumirühmade rühmatööde lõpuesitlus.

12

Võrguprogrammeerimine

13

Host

• Internetti ühendatud seade: enamasti arvuti, kuid võib olla ka ruuter, printer, faks jne.

• IP (Internet Protocol) aadress

– Kasutatakse punktidega eraldatud neli märgita täisarvu 0 kuni 255

• nt 199.1.32.90

• Domeeninimi IP aadressiks

– www.ut.ee 193.40.5.73

14

Klass java.net.InetAddress

• Isendi loomiseks

public static InetAddress getByName(String host) throws

UnknownHostException

public static InetAddress[] getAllByName(String host)

throws UnknownHostException

public static InetAddress getLocalHost() throws

UnknownHostException

15

16

import java.net.InetAddress;

import java.net.UnknownHostException;

public class Võrk {

public static void main (String[] args) throws

UnknownHostException {

InetAddress me = InetAddress.getLocalHost();

System.out.println("Minu nimi on: " + me.getHostName());

System.out.println("Minu aadress on: " + me.getHostAddress());

InetAddress address = InetAddress.getByName("www.ut.ee");

System.out.println("Hosti nimi: " + address.getHostName());

System.out.println("IP aadress: "+ address.getHostAddress());

}

}

Minu nimi on: aurelius

Minu aadress on: 192.168.1.69

Hosti nimi: www.ut.ee

IP aadress: 193.40.5.73

Pordid

• Tavaliselt on hostil ainult üks Interneti aadress.

• See aadress jagatakse 65 536 pordi vahel.

• Pordid on loogilised abstraktsioonid, mis lubavad ühel hostil suhelda samaaegselt paljude teiste hostidega.

• Osa teenuseid on seotud kindlate pordinumbritega (0…1023), nt .

• HTTP – 80, telnet – 23, finger – 79, SMTP – 25, …

17

Protokollid • Protokoll defineerib, kuidas kaks hosti omavahel suhtlevad. • Protokoll määrab:

– andmetihendusmeetodid; – kuidas saatev seade annab teada, et sõnumi edastamine on lõpetatud; – kuidas vastuvõtja teavitab saatjat; – …

• IP – Internet Protocol – internetiaadresside tasemel

• UDP – User Datagram Protocol – reeglid sõnumite vahetamiseks teiste internetipunktidega

andmepakettide tasemel

• TCP – Transmission Control Protocol

18

Protokollid rakenduse tasemel • http

– hüperteksti edastamise protokoll HyperText Transfer Protocol;

• telnet – kaugterminaliga suhtlemise protokoll;

• ftp, ftp-data – failide ülekande protokollid (file transfer protocol);

• smtp – kirjavahetuse protokoll (simple mail transfer protocol);

• nntp – võrguuudiste edastamise protokoll (network news transfer protocol);

• finger – protokoll lühiinformatsiooni edastamiseks kasutaja või süsteemi kohta;

• rpc – hajussüsteemide tööks vajalik kaugprotseduuri väljakutse protokoll (remote procedure call);

• snmp – võrgu teeninduseks vajalik protokoll (simple network management protocol);

• ntp – ajateenistusprotokoll (network time protocol);

• nfs – protokoll hajusa välismäluga töötamiseks (network file system);

• …

19

URL • Uniform Resource Locator

• URL on ressursi identifitseerimiseks Internetis e. Internetiaadress. Igale dokumendile või muule ressursile Internetis vastab oma unikaalne internetiaadress.

• Internetiaadressi esimene osa näitab ära kasutatava protokolli (näit. HTTP), sellele järgneb domeeninimi, alamkataloogi nimi ja failinimi. – http://www.oracle.com/technetwork/java/index.html

– ftp://ftp.info.apple.com/pub/

– mailto:alharo@metalab.uncl.edu

– telnet://utoopia.pol.edu

– ftp://mp3:mp3@138.247.121.61:21000/c3a/stuff/mp4/ 20

Klass java.net.URL

• Klass java.net.URL sisaldab meetodeid:

– uue URL loomiseks;

– URL-ist osade eraldamiseks;

– sisendvoo saamiseks URL-ist (andmete lugemine serverist)

• Serverist sisu saamiseks Java objektina.

• Toetab protokolle:

– http, https, ftp, file, …

21

Klass java.net.URL

• Konstruktoreid: – URL(String spec)

– URL(String protocol, String host, int port, String file)

– URL(String protocol, String host, String file)

• Meetodeid: – public String getProtocol()

– public String getHost()

– public int getPort()

– public String getFile()

22

23

import java.net.*;

import java.io.*;

public class Veebilugeja {

public static void main(String[] args) {

String url;

if (args.length > 0)

url = args[0];

else

url = "http://www.cs.ut.ee";

try {

URL u = new URL(url);

InputStream in = u.openStream();

InputStreamReader isr = new InputStreamReader(in);

BufferedReader br = new BufferedReader(isr);

String rida;

while ((rida = br.readLine()) != null) {

System.out.println(rida);

}

} catch (IOException e) {System.err.println(e);}

}

}

Veebilehe näitamine

• JEditorPane võimaldab näidata struktureeritud teksti

• Pakub tuge tekstile, RTF ja HTML • JEditorPane sisu täitmine meetodiga setPage(), milles URL sõne kujul argumendina

• JEditorPane toetab hüperlingi klikkimise sündmusi – hyperlinkUpdate() {...}

• Sündmuste töötlemine – HyperlinkEvent

– actionPerformed() {...}

24

Veebilehitseja näide

25

26

import java.awt.*;

import java.awt.event.*;

import java.net.*;

import java.io.*;

import javax.swing.*;

import javax.swing.event.*;

public class Veebilehitseja extends JFrame {

private JTextField enter;

private JEditorPane contents;

public Veebilehitseja() {

super("Lihtne veebilehitseja");

enter = new JTextField("Sisesta URL siia");

enter.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e ){

getPage(e.getActionCommand());

}});

add(enter, BorderLayout.NORTH);

contents = new JEditorPane();

contents.setEditable(false);

27

contents.addHyperlinkListener(new HyperlinkListener() {

public void hyperlinkUpdate(HyperlinkEvent e){

if(e.getEventType() ==

HyperlinkEvent.EventType.ACTIVATED)

getPage(e.getURL().toString());

}});

add(new JScrollPane(contents), BorderLayout.CENTER);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(400, 300);

setVisible(true);

}//siiani konstruktor

private void getPage(String location){

try {

contents.setPage(location);

enter.setText(location);

} catch (IOException io) {

JOptionPane.showMessageDialog(this, "Viga URL

lugemisel","Bad URL", JOptionPane.ERROR_MESSAGE);

}

setCursor(Cursor.getPredefinedCursor(

Cursor.DEFAULT_CURSOR));

}

28

public static void main(String args[]) {

new Veebilehitseja();

}

}

Eksamitöö aines Objektorienteeritud programmeerimine

• Eksamitööks on aega 90 minutit.

• Arvutit, materjale jms. kasutada ei ole lubatud.

• Maksimaalselt on võimalik saada 35 punkti.

• Lahendustes tuleb lisaks lõppvastusele anda ka selgitusi. – Kõrgelt hinnatakse õigeid vastuseid ja selgitusi.

– Samas omavad väärtust ka selgitused, mis näitavad mõistlikku mitmevahelolekut ning kus õige vastuse juurde viiks näiteks mõne detaili vaatamine (mida aga käesoleva eksamiformaadiga teha ei saa).

29

Eksamist

• Teemad

– Loenguteemad

– Näiteprogrammid slaididel

• Vajadusel lisatakse ülesandele selgitavat materjali (API, lõike loengu- või praktikumimaterjalidest)

30

Ülesannetest • Mis ilmub ekraanile?

– ilma etteantud vastusteta – valikvastustega – selgitada

• Mida teeb järgmine meetod? • Leida viga (aga siis tõesti viga on) • Klikkeriküsimustel põhinevaid • Milline järgnevatest vastustest kirjeldab kõige

paremini … • Mis on ja milleks on kasulik …? • …

31

Klassi- ja isendi…

• Jalgrattanäide paberil

32

Vood

• http://www.1001javatips.com/IOexplanation.htm

33

Lõime seisundid

• NEW A thread that has not yet started is in this state.

• RUNNABLE A thread executing in the Java virtual machine is in this state.

• BLOCKED A thread that is blocked waiting for a monitor lock is in this state.

• WAITING A thread that is waiting indefinitely for another thread to perform a particular action is in this state.

• TIMED_WAITING A thread that is waiting for another thread to perform an action for up to a specified waiting time is in this state.

• TERMINATED A thread that has exited is in this state.

34

35

Millise hindega oleksite rahul?

36 1. 2. 3. 4. 5. 6.

0% 0% 0%0%0%0%

1. A

2. B

3. C

4. D

5. E

6. F

Kertu-Kertu Ceki Dening Trim Sutija

kertu-kertu ceki iki

aja dirampas maneh saka tanganku

amarga ya mung kari kuwi woding uripku

dalanku tekan sabrang

marang donyaku sing wis ilang ing kasunyatan

marang donyaku, donya khayali

Ceki kaardid Olge peidus mu paremas käes nagu pimestav helk kaob minevikku.

Istuge vaikselt, õlad põlvedel, suruge ennast mu südamesse.

Tundke, kuidas te nurgad kaevuvad sügavalt mu peopessa.

“Tõuse jalgadele, koer!” “Ta hoiab midagi käes” “Raske on kätte saada” “Käes!” “Mis need on?” “Ainult kaardid” “Võta need ära! Hasartmäng on kriminaalne tegevus.”

Tühjade kätega, jälle vaikselt.

Edelaraudtee

• edel.ee

38

Suur tänu osalemast! Kohtumiseni!

39

top related