objektorienteeritud programmeerimine...•objektorienteeritud programmeerimine...

55
Objektorienteeritud programmeerimine 12. veebruar 2018 Marina Lepp 1

Upload: others

Post on 30-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Objektorienteeritud programmeerimine

12. veebruar 2018

Marina Lepp

1

Page 2: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Milline järgmistest ansamblitest meeldib teile kõige rohkem?

1. Curly Strings2. Patune pool3. Trad.Attack!4. Miljardid5. Metsatöll6. Smilers7. Terminaator8. Winny Puhh9. Ei oska öelda

2

Curly St

rings

Patune p

ool

Trad.A

ttack

!

Milj

ardid

Mets

atöll

Smile

rs

Termin

aator

Win

ny Puhh

Ei osk

a öeld

a

9%

8%

9%

5%

17%

15%

11%

14%

13%

Page 3: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Tänane plaan

• Sissejuhatus

– organisatoorselt

• Milleks?

• Kuidas?

• Millal?

• Kas?

– teemasse

• Java

• Esimene programm

• …

• …3

Page 4: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Milleks OOP?

• Silmaring, maailmavaade

– objektid, subjektid

• Õppimine

– jätk esimese semestri programmeerimisele

• Programmeerimine

• Programmeerimise alused, Programmeerimise alused II

4

Page 5: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Eeldus mitmetele ainetele

• LTAT.03.005 Algoritmid ja andmestruktuurid

• LTAT.05.003 Tarkvaratehnika

• LTAT.05.004 Veebirakenduste loomine

• MTAT.03.032 Kasutajaliideste kavandamine

• MTAT.03.158 Programmeerimine keeles C++

5

Page 6: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Keel

• Java

– populaarsus

• http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

– töökuulutused

• http://www.cvkeskus.ee

• http://www.cv.ee/too/infotehnoloogia/q-java

6

Page 7: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Inimesed on erinevad

• Siin võib-olla neid, kes

– õpivad hoopis muud eriala

– programmeerivad igapäevaselt suure innuga

– said Programmeerimises hinde E

– on edukalt osalenud (rahvusvahelisel) informaatikaolümpiaadil

– suhtlevad mingis programmeerimiskeeles palju vabamalt kui mistahes inimkeeles

– on selle aine püsikliendid

– …7

Page 8: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mis valdkonnast te olete?

81. 2. 3. 4. 5.

3% 3% 2%

90%

1%

1. humanitaarteaduste ja kunstide valdkond

2. sotsiaalteaduste valdkond

3. meditsiiniteaduste valdkond

4. loodus- ja täppisteaduste valdkond

5. muu

Page 9: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Programmeerimise (Progr. alused II) kursus oli

91. 2. 3. 4. 5.

21%

29%

12%

7%

31%

1. väga lihtne

2. lihtne

3. paras

4. keeruline

5. väga keeruline

Page 10: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Millise hinde saite Programmeerimise (Progr. alused II) kursusel?

10

A. A

B. B

C. C

D. D

E. E

F. F

51%

25%

14%

5%3%2%

A B C D E F

Page 11: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Kursus• 6 EAP 6*26 tundi tööd• Loengud

– esmaspäeviti 12-14• põhirühm• edasijõudnute rühm

– mittestatsionaarne rühm

• Praktikumide tunnitööd, kodutööd– suhteliselt kindlas tempos, kindlad teemad– arvutiklassis, tavalises auditooriumis oma sülearvutiga– alates 2. nädalast toimuvad K18 lisatunnid

• Kontrolltööd– ajapiiriga

• Rühmatööd– ISE!

• Eksam11

Page 12: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Millele (veel) tähelepanu?• Looming

– programmeerimine

• Keskendumine– Loengusse-praktikumi selleks, et õppida (luua tingimused

õppimiseks)– piisavalt iseseisvat õppimist tunnivälisel ajal

• Koostöö– üliõpilased omavahel

• paaristööd praktikumis• rühmatöö• foorum

– üliõpilane ja õppejõud• küsitakse-vastatakse• @ut.ee aadressid, ÕISis registreeritud aadressid

• Eestikeelne terminoloogia– kui meie ei kasuta ja ei arenda, siis ei tee seda (varsti) keegi

12

Page 13: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Hindamine• Loengud

– 12 punkti

• Praktikumid– 12 punkti– 1. kontrolltöö, 16 punkti– 2. kontrolltöö, 16 punkti– 1. rühmatöö, 5 punkti– 2. rühmatöö, 5 punkti– rühmatöö esitlus, 3 punkti

• Eksamitöö, 33 punkti– Eksamile pääsemiseks peab olema praktikumidest (sh.

rühmatööd) kogutud vähemalt 28 punkti (sh 1. KT 12 punkti), loengutest vähemalt 6 punkti. Eksamil peab koguma vähemalt 15 punkti.

• Hindeskaala "E" 51-60, "D" 61-70, "C" 71-80, "B" 81-90, "A" 91- 13

Page 14: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Millise hindega oleksite selles aines rahul?

A. A

B. B

C. C

D. D

E. E

F. F

14

54%

20%

15%

1%6%

3%

A B C D E F

Page 15: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Väljavõtteid tagasisidest

• Midagi keerulist selle aine juures ei ole, kui pidevaltkaasa teha.

• Mida põnevam ja köitvam on grupitöö idee, seda toredam on seda ka lahendada/teha.

• Kindlasti iga nädal teha kõik ülesanded järjest ära, maha jäädes on hiljem palju raskem.

• Käige kohal :) siis püsite joonel. Kui olete väga algaja, siis varuge hoolikalt ja palju muudest kohustustest vaba tööaega.

15

Page 16: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Väljavõtteid tagasisidest

• Aine nõuab palju tööd, aga on huvitav ja vaevaväärt.

• Nõuab palju iseseisvat tööd. Algul võib olla raske, aga kui hakkad mõistma, siis on täitsa sõltuvusttekitav.

• See on see aine, kus te reaalselt õpite programmeerima ning saate need põhiteadmised, mida programmeerijanatöötamiseks kõige rohkem vaja läheb.

16

Page 17: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Eesmärk• Kursuse eesmärgiks on anda alusteadmised objekt-orienteeritud

programmeerimise eripärast, oskused programmide koostamiseks ningesmased rühmatööoskused

• Kursuse läbinud üliõpilane:

– on võimeline selgitama objekt-orienteeritud paradigma põhimõisteid(kapseldus, abstraktsioon, pärimine, polümorfism, üledefineerimine, ülekate) ning analüüsima vastavaid programme

– on võimeline kirjeldama erinevaid andmestruktuure (massiiv, ahel, magasin, järjekord, paisktabel) ja nende kasutusviise

– oskab selgitada rakendusteekide väärtust ja olemust ning leida nendestvajalikku informatsiooni

– oskab selgitada sündmuspõhise programmeerimise eripära ja erinditekäitlemist ning tuua näiteid nende kasutamisest

– oskab ühes objekt-orienteeritud programmeerimiskeeles kasutadesintegreeritud programmeerimiskeskkonda koostada, testida ja siludaprogramme, rakendades selleks eelmistes punktides loetletut

– oskab kirjeldada isikliku kogemuse põhjal rühmaprojekti keskseidelemente

17

Page 18: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Tahaks juba programmeerimisest ka kuulda

• Objektorienteeritud programmeerimine

– programmeerimiskeel Java

• Slaidide allikad

– Helle Heina, Eno Tõnissoni slaidid

– Y. Daniel Liang Introduction to Java programming

– http://docs.oracle.com/javase/tutorial/

18

Page 19: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Täna

• Java ajaloost

• Java omadused

• Esimene programm

• Muutujad ja tüübid

• Põhikonstruktsioonid

19

Page 20: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Java• James Gosling, Sun Microsystems• Oak, Green• 1995• Nimest

– Definition of JAVA• coffee

– Examples of JAVA• a hot cup of java

– Jaava saar, jaava keel• 100 miljonit, piirkondlik keel, pole päevalehti

– http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.html

• Ajaloost– http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-

198355.html20

Page 21: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Java• Lihtsus

• Objektorienteeritus

• Staatiliselt rangelt tüübitud

• Turvalisus

• Arhitektuurist sõltumatus– write once, run anywhere

– baitkood

• Multilõimelisus

• Dünaamilisus

• Vt.– http://www.cs.armstrong.edu/liang/intro6e/JavaCharacteristics.pdf

– http://www.oracle.com/technetwork/java/langenv-140151.html

21

Page 22: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

API, JDK, IDE• API – Application Programming Interface –

rakendusteek, eelnevalt programmeeritud objektid(Java) programmi koostamiseks

– meil Java SE 9

• JDK – Java Development Toolkit – Java programmidekoostamise tarkvara komplekt

– meil JDK 9, võiks installida enne 1. praktikumi

• IDE – Integrated Development Environment –integreeritud programmeerimiskeskkond

– uusim Eclipse Oxygen

– IntelliJ IDEA Community või Ultimate (ut.ee aadressiga)

22

Page 23: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Tehnoloogiad• Java SE

– Standard Edition

• Java Embedded • Java EE

– Enterprise Edition

• Java ME – Micro Edition

• JavaFX – The Rich Client Platform

• Java Card • Java TV • Java DB

http://www.oracle.com/technetwork/java/index.html

23

Page 24: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mis firmas Java loodi?

241. 2. 3. 4.

4% 4%4%

88%1. Dragon Ltd

2. Sun Microsystems

3. Smilers Computers

4. Grape International

Page 25: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Java programmide koostamise tarkvara komplekt on

251. 2. 3. 4.

4%1%

19%

76%1. JFK

2. JDK

3. API

4. ACTA

Page 26: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Esimene programm

Python:/*

Mitmerealine kommentaar

*/

//Üherealine kommentaar

public class TereMaailm {

public static void main(String[] args) {

System.out.println("Tere, maailm");

}

}

Fail nimega: TereMaailm.java

Kompileerimine: >javac TereMaailm.java

Käivitamine: >java TereMaailm26

Page 27: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Klassimeetod, mitte

isendimeetod

public class TereMaailm {

public static void main(String[] args) {

System.out.println("Tere, maailm");

}

}

Kõik võivad programmi käivitada

Programmeerimine seisneb klasside

koostamises

Klassi nimi

Klassi alustav

sulg

Kõik võivad meetodit käivitada

Tühitüüp, väärtust ei tagastata

Peameetod

Meetodit alustav

sulg

Parameetri tüüp

Parameetri nimi

Meetodit lõpetav

sulg

Klassi lõpetav

sulg

Meetodi nimi

ArgumentKäsku lõpetav semikoolon

27

Page 28: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Tekstist tööle

Programmitekst

Baitkood

Redigeeri programmiteksti

Kompileerijavac Tere.java

Käivitajava Tere

Tulemus

Pole see Pole

see

Pole see

28

Page 29: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Baitkood

29

H:\oop18> javap -c TereMaailmCompiled from "TereMaailm.java"public class TereMaailm {

public TereMaailm();Code:

0: aload_01: invokespecial #1 //Method java/lang/Object."<init>":()V4: return

public static void main(java.lang.String[]);Code:

0: getstatic #2 //Field java/lang/System.out:Ljava/io/PrintStream;3: ldc #3 //String Tere, maailm5: invokevirtual #4 //Method java/io/PrintStream.println:(Ljava/lang/String;)V8: return

}

Page 30: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Baitkood• keel JVM (Java Virtual Machine) jaoks• https://docs.oracle.com/javase/specs/jvms/se9/html/index.html

• Võib jõuda erineval moel

– javac

– Jruby (Ruby)

– Jython (Python)

– Clojure (spetsiaalselt JVM jaoks)

– ….

30

Page 31: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Tekstist tööle

Programmitekst

Baitkood

Redigeeri programmiteksti

Kompileerijavac Tere.java

Käivitajava Tere

Tulemus

Pole see Pole

see

Pole see

31

Page 32: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Millest programm koosneb?• Kommentaarid

• Võtmesõnad

– public, class, static, void

• Piiritlejad

– public, static

• Laused

– lõppevad üldiselt semikooloniga

• Plokid

– { }

• Klassid

• Meetodid

– Peameetod main32

Page 33: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Võtmesõnadabstract assert boolean break byte case

catch char class const* continue default

double do else enum extends final

finally float for goto* if implements

import instanceof int interface long

native new package private protected

public return short static strictfp

super switch synchronized this throw

throws transient try void volatile while

• Tunduvad võtmesõnadena, aga on literaalid

false null true

33

Page 34: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Muutujad ja tüübid

• Igal Java muutujal on

– tüüp

• algtüüp või viittüüp

– nimi

– väärtus

• int x = 17;

34

Page 35: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Algtüüp• Täisarvud

– byte

– short

– int

– long

• Ujukomaarvud– float

– double

• Tõeväärtused– boolean

• Sümbolid– char

35

Page 36: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Täisarvud• Teine täiendväärtus (two's complement)

– byte

• 8-bitiline

• -128 kuni 127

– short

• 16-bitiline

• -32 768 kuni 32 767

– int

• 32-bitiline

• -2 147 483 648 kuni 2 147 483 647

– long

• 64-bitiline

• -9 223 372 036 854 775 808 kuni 9 223 372 036 854 775 807– üheksa kvintiljonit kakssada kakskümmend kolm kvadriljonit kolmsada

seitsekümmend kaks triljonit kolmkümmend kuus miljardit kaheksasada viiskümmend neli miljonit seitsesada seitsekümmend viis tuhat kaheksasada seitse

• int x; 36

Page 37: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mille toob järgmine programmi lõik ekraanile?

371. 2. 3. 4.

55%

7%

28%

10%

int n = 1000000;

System.out.println(n*n);

1. 1000000000000

2. -727379968

3. veateate

4. midagi muud

Page 38: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Ujukomaarvud

• IEEE 754– float

• 32-bitiline

– double

• 64-bitiline

• double raadius = 7.8;

38

Page 39: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Tõeväärtus

• boolean

– true

– false

• boolean tv = true;

39

Page 40: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Sümbolid

• char

– 16-bitiline Unicode-sümbol

– '\u0000' (0) kuni '\uffff' (65535)

• char ch1 = 'a';

• char ch2 = 65;

• System.out.print("ch1 ja ch2: ");

• System.out.println(ch1 + " " + ch2);

40

Page 41: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Nimi

• on tõstutundlik

• võib sisaldada tähti, numbreid, _ , $

• ei tohi alata numbriga

• ei tohi olla Java võtmesõna

• ei tohi olla true, false, null

41

Page 42: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Kirjeldamine, väärtustamine

char a = 'e';

double raadius;

int x, y, z, k;

raadius = 3.4;

x = y = z = 1;

int i = 1, j = 2;

k = 1 + 5;

x = y + z;

long kood = 48007140350L;42

Page 43: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Ühiksuurendamine, ühikvähendamine

43

++muutuja Muutujat suurendatakse ühe võrra ja seejärel arvutatakse avaldise väärtus kasutades muutuja uut väärtust

muutuja++ Avaldise väärtus arvutatakse kasutades muutujavana väärtust ja seejärel suurendatakse muutujat ühe võrra

--muutuja Muutujat vähendatakse ühe võrra ja seejärel arvutatakse avaldise väärtus kasutades muutuja uut väärtust

muutuja-- Avaldise väärtus arvutatakse kasutades muutujavana väärtust ja seejärel vähendatakse muutujat ühe võrra

Page 44: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mille toob järgmine programmi lõik ekraanile?

441. 2. 3. 4. 5.

40%

37%

2%1%

20%

int i = 5;

int uus = 5 * i++;

System.out.println(uus);

1. 25

2. 26

3. 30

4. veateate

5. midagi muud

Page 45: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mille toob järgmine programmi lõik ekraanile?

451. 2. 3. 4. 5.

2%8%

1%3%

86%int i = 5;

int uus = 5 * ++i;

System.out.println(uus);

1. 25

2. 26

3. 30

4. veateate

5. midagi muud

Page 46: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mille toob järgmine programmi lõik ekraanile?

461. 2. 3. 4. 5.

21%

65%

4%

10%

0%

int i = 5;

int uus = (5 * i)++;

System.out.println(uus);

1. 25

2. 26

3. 30

4. veateate

5. midagi muud

Page 47: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mis ilmub ekraanile?

471. 2. 3. 4.

44%

2%1%

54%

int d = 0;

int c = 0;

d = c++;

System.out.println(c);

1. 0

2. 1

3. midagi muud

4. veateade

Page 48: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Mis ilmub ekraanile?

481. 2. 3. 4.

13%17%

5%

65%

int c = 0;c = c++;System.out.println(c);

1. 0

2. 1

3. midagi muud

4. veateade

Page 49: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

c = c++

c = c

c++

int temp = c; // temp = 0c++; // c = 1c = temp; // c = 0

49

Page 50: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

javap –c LiitmineCompiled from "Liitmine.java"public class Liitmine {

public Liitmine();Code:

0: aload_01: invokespecial #1 // Method java/lang/Object."<init>": ()V4: return

public static void main(java.lang.String[]);Code:

0: iconst_01: istore_12: iload_13: iinc 1, 16: istore_17: getstatic #2 //Field java/lang/System.out:Ljava/io/PrintStream;

10: iload_111: invokevirtual #4 //Method java/io/PrintStream.println:(I)V14: return

} 50

Page 51: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Kas on lubatud int Public = 50000;

511. 2. 3.

28%

8%

64%

1. Jah

2. Ei

3. Ei oska öelda

Page 52: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Kas on lubatud int x = 5_000_000;

521. 2. 3.

55%

6%

39%

1. Jah

2. Ei

3. Ei oska öelda

Page 53: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Loengu tempo oli

1. liiga kiire

2. paras

3. liiga aeglane

liiga

kiir

epar

as

liiga

aegla

ne

14%21%

65%

Page 54: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Materjal tundus

1. liiga lihtne

2. parajalt jõukohane

3. liiga keeruline

liiga

lihtn

e

paraja

lt jõ

ukohane

liiga

keeru

line

6%

23%

72%

Page 55: Objektorienteeritud programmeerimine...•Objektorienteeritud programmeerimine –programmeerimiskeel Java •Slaidide allikad –Helle Heina, Eno Tõnissoni slaidid –Y. Daniel Liang

Suur tänu osalemast ja kohtumiseni!

55