Download
objektorienteeritud programmeerimine n.
Skip this Video
Loading SlideShow in 5 Seconds..
Objektorienteeritud programmeerimine PowerPoint Presentation
Download Presentation
Objektorienteeritud programmeerimine

Objektorienteeritud programmeerimine

427 Views Download Presentation
Download Presentation

Objektorienteeritud programmeerimine

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Objektorienteeritud programmeerimine 6. september 2013 Eno Tõnisson

  2. Tänane plaan • Sissejuhatus • organisatsiooniliselt • Milleks? • Kuidas? • Millal? • Kas? • teemasse • Java • Esimene programm • … • …

  3. Milleks OOP? • Silmaring, maailmavaade • objektid, subjektid • Õppimine • jätk esimese semestri programmeerimisele • Programmeerimine • Programmeerimise alused, Programmeerimise alused II • eeldus mitmetele järgmistele ainetele

  4. 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

  5. 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 • …

  6. Mis teaduskonnast te olete? • Usu- • Õigus- • Arsti- • Filosoofia- • Kehakultuuri- • Loodus- ja tehnoloogia- • Majandus- • Matemaatika-informaatika- • Sotsiaal- ja haridus- • Muu

  7. Programmeerimise (Progr. alused II) kursus oli • väga lihtne • lihtne • paras • keeruline • väga keeruline

  8. Millise hinde saite Programmeerimise (Progr. alused II) kursusel? • A • B • C • D • E

  9. 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 loengus, praktikumis • rühmatöö • foorum • üliõpilane ja õppejõud • küsitakse-vastatakse • @ut.ee aadressid, ÕIS • Eestikeelne terminoloogia • kui meie ei kasuta ja ei arenda, siis ei tee seda (varsti) keegi

  10. Miks just siin? • On olemas hulgaliselt • materjale • videoid • programminäiteid • … • Miks just kursusel, miks just nii?

  11. Kursus • Loengud • reedel kell 14-16 • eelmiste aastate video? • Praktikumide tunnitööd, kodutööd • suhteliselt kindlas tempos, kindlad teemad • Kontrolltööd • ajapiiriga • Rühmatööd • ISE! • mängud? • Eksam

  12. Hindamine • Loengud • 15 punkti • Praktikumid • 12 punkti • 1. kontrolltöö, 17 punkti • 2. kontrolltöö, 13 punkti • 1. rühmatöö, 5 punkti • 2. rühmatöö, 5 punkti • 3. rühmatöö, 3 punkti • rühmatöö esitlus, 3 punkti • Eksamitöö, 30 punkti • Eksamilepääsemisekspeabolemapraktikumidest (sh. rühmatööd) kogutudvähemalt 30punkti, loengutestvähemalt7punkti. • Hindeskaala "E" 51-60, "D" 61-70, "C" 71-80, "B" 81-90, "A" 91-

  13. Loengud • Milleks? • Üks räägib, teised • kuulavad ja mõtlevad kaasa • teevad näo, et kuulavad ja mõtlevad kaasa • ei tee isegi nägu, et kuulavad ja mõtlevad kaasa • 90 minutit järjest? • vaheaeg • klikkerid aitaksid • aruteluga

  14. Sülearvutid loengus?! • Konspekteerida? • Kohe läbi proovida? • Otsida lisamaterjali? • … • Suhelda? • Teha tööd? • Jälgida uudiseid? • Vaadata filme? • … http://uudised.err.ee/index.php?06244893

  15. Loengu eel • Selleks, et vajaliku tempoga edasi minna (ja loengu eest punkte saada) tuleb enne iga reedet • läbi vaadata eelmise aasta loengu video • saata vastused antud küsimustele selle loengu kohta • saata küsimused selle loengu kohta • Selle eest on võimalik saada kuni 1 punkt (olenemata sellest, kas tulete loengusse või mitte)

  16. Reedel • Reedel tuleb teha otsus, kas tulla loengusse. • Loengus eeldatakse, et osalejad on video läbi töötanud. Rohkem keskendutakse saabunud vastuste analüüsile ja arutelule. Samuti saabunud küsimustele. • Need, kes loengu läbivaatamise vastuseid/küsimusi ei saatnud, võivad siiski loengusse tulla, aga nende saagiks on ülimalt 1/2 punkti. • Kuna tegemist on esmakordselt sellise skeemiga, siis analüüsime mõne aja pärast olukorda ja vajadusel muudame.

  17. Kuivõrd on võimalik loengusse sülearvuti kaasa võtta? • nagunii tavaliselt kaasas • vajadusel võib kaasa võtta • ei taha/saa kaasa võtta 2

  18. Praktikumid • E 16 • T 8 • T 10 tühjem praegu • K 16

  19. Millise hindega oleksite selles aines rahul? • A • B • C • D • E • F

  20. Tahaks juba programmeerimisest ka kuulda • Objektorienteeritud programmeerimine • programmeerimiskeel Java • Slaidide allikad • Helle Heina slaidid • Y. Daniel Liang Introduction to Java programming • http://docs.oracle.com/javase/tutorial/

  21. Eesmärk • Kursuseeesmärgiks on andaalusteadmisedobjekt-orienteeritudprogrammeerimiseeripärast, oskusedprogrammidekoostamiseksningesmasedrühmatööoskused • Kursuseläbinudüliõpilane: • on võimelineselgitamaobjekt-orienteeritudparadigmapõhimõisteid (kapseldus, abstraktsioon, pärimine, polümorfism, üledefineerimine, ülekate) ninganalüüsimavastavaidprogramme • on võimelinekirjeldamaerinevaidandmestruktuure (massiiv, ahel, magasin, järjekord, paisktabel) janendekasutusviise • oskabselgitadarakendusteekideväärtustjaolemustningleidanendestvajalikkuinformatsiooni • oskabselgitadasündmuspõhiseprogrammeerimiseeripärajaerinditekäitlemistningtuuanäiteidnendekasutamisest • oskabühesobjekt-orienteeritudprogrammeerimiskeeleskasutadesintegreeritudprogrammeerimiskeskkondakoostada, testidajasiludaprogramme, rakendadessellekseelmistespunktidesloetletut • oskabkirjeldadaisiklikukogemusepõhjalrühmaprojektikeskseidelemente.

  22. Täna • Java ajaloost • Java omadused • Esimene programm • Muutujad ja tüübid • Põhikonstruktsioonid

  23. Java • James Gosling,Sun Microsystems • Oak • 1995 • Nimest • Definition of JAVA • coffee • Examples of JAVA • a hot cup of java • Jaava saar, jaava keel • 85 miljonit, "köögikeel" • http://www.javaworld.com/javaworld/jw-10-1996/jw-10-javaname.html • Ajaloost • http://www.oracle.com/technetwork/java/javase/overview/javahistory-index-198355.html

  24. Java • Lihtsus • Objektorienteeritus • Staatiliseltrangelttüübitud • Interpreteeritav • Turvalisus • Arhitektuuristsõltumatu • write once, run anywhere • Multilõimelisus • Dünaamilisus • Vt. • http://www.cs.armstrong.edu/liang/intro6e/JavaCharacteristics.pdf

  25. API, JDK, IDE • API – Application ProgrammingInterface – rakendusteek,eelnevaltprogrammeeritudobjektid(Java)programmikoostamiseks • meil Java SE 7 • JDK – Java Development Toolkit – Java programmidekoostamise tarkvara komplekt • meil JDK 7 • IDE – IntegratedDevelopment Environment – integreeritud programmeerimiskeskkond • meil Eclipse 4.2.1 • uusim Eclipse 4.3

  26. Tehnoloogiad • Java SE • Java Embedded • Java EE • Java ME • JavaFX • Java Card • Java TV • Java DB • http://www.oracle.com/technetwork/java/index.html

  27. Mis firmas Java loodi? • DragonLtd • Sun Microsystems • SmilersComputers • Grape International

  28. Java programmidekoostamise tarkvara komplekt on • JFK • JDK • API • ACTA

  29. Esimene programm Python: /* Mitmerealine kommentaar */ //Üherealine kommentaar publicclassTereMaailm { publicstaticvoidmain(String[] args) { System.out.println("Tere, maailm"); } } Fail nimega: TereMaailm.java Kompileerimine: >javac TereMaailm.java Käivitamine:>java TereMaailm

  30. Klassi alustav sulg Kõik võivad programmi käivitada Programmeerimine seisneb klasside koostamises Tühitüüp, väärtust ei tagastata Meetodit alustav sulg Peameetod public class TereMaailm { public static void main(String[] args) { System.out.println("Tere, maailm"); } } Klassi nimi Parameetri tüüp Parameetri nimi Meetodit lõpetav sulg Meetodi nimi Klassi lõpetav sulg Kõik võivad meetodit käivitada Argument Käsku lõpetav semikoolon Klassimeetod, mitte isendimeetod

  31. Tekstist tööle Redigeeri programmiteksti Programmitekst Pole see Kompileeri javacTere.java Pole see Baitkood Tulemus Pole see Käivita java Tere

  32. Baitkood • masinkeel JVM (Java Virtual Machine) jaoks 0: iconst_2 1: istore_1 2: iload_1 3: sipush 1000 6: if_icmpge 44 9: iconst_2 10: istore_2 11: iload_2 12: iload_1 13: if_icmpge 31 16: iload_1 17: iload_2

  33. Millest programm koosneb? • Kommentaarid • Võtmesõnad • public, class, static, void • Piiritlejad • public, static • Laused • lõppevad semikooloniga • Plokid • { } • Klassid • Meetodid • Peameetod main

  34. Võtmesõnad abstractassertbooleanbreakbytecasecatchcharclassconst* continuedefaultdoubledoelseenumextendsfinalfinallyfloatforgoto* ifimplementsimport instanceofintinterfacelongnativenewpackageprivateprotectedpublicreturnshortstaticstrictfp superswitchsynchronizedthisthrowthrowstransienttryvoidvolatilewhile • Tunduvad võtmesõnadena, aga on literaalid false null true

  35. Muutujad ja tüübid • Igal Java muutujal on • tüüp • algtüüp või viittüüp • nimi • väärtus • int x = 17;

  36. Algtüüp • Täisarvud • byte • short • int • long • Ujukomaarvud • float • double • Tõeväärtused • boolean • Sümbolid • char

  37. Täisarvud • Teine täiendväärtus (two'scomplement) • byte • 8-bitiline • -128 kuni 127 • short • 16-bitiline • -32768 kuni 32767 • int • 32-bitiline • -2147483648 kuni 2147483647 • long • 64-bitiline • -9223372036854775808 kuni 9223372036854775807 • int x;

  38. Ujukomaarvud • IEEE 754 • float • 32-bitiline • double • 64-bitiline • double raadius = 7.8;

  39. Tõeväärtus • boolean • true • false • boolean tv = true;

  40. Sümbolid • char • 16-bitilineUnicode-sümbol • '\u0000' (0) kuni '\uffff' (65535) • char ch1 = 'a'; • char ch2 = 65; • System.out.print("ch1 ja ch2: "); • System.out.println(ch1 + " " + ch2);

  41. 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

  42. Kirjeldamine, väärtustamine • double raadius; • int x, y, z, k; • char a; • raadius = 3.4; • a = 'e'; • x = y = z = 1; • inti = 1, j = 2; • k = 1 + 5;

  43. Ühiksuurendamine, ühikvähendamine

  44. Mille toob järgmine programmi lõik ekraanile? • 25 • 26 • 30 • veateate • midagi muud inti = 5;intuus = 5 * i++; System.out.println(uus);

  45. Mille toob järgmine programmi lõik ekraanile? • 25 • 26 • 30 • veateate • midagi muud inti = 5;intuus = 5 * ++i; System.out.println(uus);

  46. Mille toob järgmine programmi lõik ekraanile? • 25 • 26 • 30 • veateate • midagi muud inti = 5;intuus = (5 * i)++; System.out.println(uus);

  47. Suur tänu osalemast ja kohtumiseni!