TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Relevanta dokument
TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

Föreläsning 3: Booleans, if, switch

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

TDDC77 Objektorienterad Programmering

Programmering för språkteknologer II, HT2011. Rum

Exempel på ett litet Ada-program

F4. programmeringsteknik och Matlab

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

SMD 134 Objektorienterad programmering

Översikt 732G11 PROGRAMMERING 1. Personal. Kursens mål. Litteratur. Kursens innehåll

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Programmering för språkteknologer I, VT2012. Rum

(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java

OOP Objekt-orienterad programmering

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Tentamen ID1004 Objektorienterad programmering May 29, 2012

Att skriva till och läsa från terminalfönstret

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

OOP Objekt-orienterad programmering

Outline. For. I istället för att följa det normala ordningen, man ändra den. I i Java får man inte göra hopp hur som helst

Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmering A. Johan Eliasson

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

TDIU01 - Programmering i C++, grundkurs

1 Datorn som miniräknare. 1.1 Räkneoperationer. 1.2 Variabler

OOP Objekt-orienterad programmering

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

//Använd main som ett "handtag" för att hålla ihop programmet. //Själva programmet finns i övriga klasser.

Undervisning. Examination

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Tentamen Grundläggande programmering

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Digitalitet. Kontinuerlig. Direkt proportionerlig mot källan. Ex. sprittermometer. Elektrisk signal som representerar ljud.

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Imperativ programmering. Föreläsning 2

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

JAVAUTVECKLING LEKTION 4

Undervisning. Examination

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

Objektorienterad Programmering (TDDC77)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander

Övning2. Variabler. Data typer

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning REPETITION & EXTENTA

Föreläsning 3: Typomvandling, villkor och val, samt textsträngar

JAVAUTVECKLING LEKTION 8

Föreläsning 1 & 2 INTRODUKTION

Föreläsning 12: Exempel och problemlösning

Introduktion till Datalogi DD1339. Föreläsning 3 29 sept 2014

OOP Objekt-orienterad programmering

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 8: Exempel och problemlösning

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Malmö högskola 2007/2008 Teknik och samhälle

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

TDDC77 Objektorienterad Programmering

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

DD1310/DD1314/DA3009 Programmeringsteknik LÄRANDEMÅL... Vilka läser kursen? ...FLER LÄRANDEMÅL. Föreläsning 1

1/15/2013. DD1310/DD1314/DA3009 Programmeringsteknik. Lärandemål... Vilka läser kursen? ...fler lärandemål VARFÖR? Föreläsning 1

Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 Jonas Lindgren, Institutionen för Datavetenskap, LiU

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Tentamen , Introduktion till Java, dtaa98, dtea53

Tentamen. Lösningsförslag

Föreläsning 14. Filhantering

Den som bara har en hammare tror att alla problem är spikar

DD1314 Programmeringsteknik

Föreläsning 7. Nyckelord I Java. Uttryck. Uttryck, Operatorer Och Kontrollflöden

Classes och Interfaces, Objects och References, Initialization

Föreläsning 1 & 2 INTRODUKTION

TENTAMEN OOP

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Strukturdiagram. Styra. Algoritmer. Val

Transkript:

TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av Java Introduktion till objektorientering Hello World! 1

Kurspersonal Kursledare: Erik Nilsson Examinator: Torbjörn Jonsson Labbhandledare : Rebecka Geijer Michaeli (I, Ii) Labbhandledare : Magnus Nielsen (SVP) Labbhandledare : Christopher Omberg (SVP) Labbhandledare : Sam Le (I, Ii) Labbhandledare : Johan Frimodig (I, Ii) Labbhandledare :Tore Risinger (I, Ii) Kursadministratör: Madeleine Häger Dahlkvist 2

Kursinnehåll (ca) 11 Föreläsningar (22h) 5 Lektioner (10h) 5 Laborationer (52h) Datortentamen.. Datastrukturer och algoritmer Java 24h + 10h + 52h = 86h schemalagd tid Kurslitteratur Data Structures and Algorithms in Java av Michael T. Goodrich och Roberto Tamassia Java Direkt med Swing av Jan Skansholm 3

725G82 (SVP) 2 HP Extra! => Problemlösning med Java, intro nu i början av kursen 3 Föreläsningar/Lektioner (ca) 10 laborationer Obligatorisk dugga (minst 3 tillfällen, start v. 5) Eventuellt kommer det gå att dugga tidigare Omtenta i annan kurs krockar med labpass för grupp B (4/3) => välj grupp A i första hand.

Innan vi börjar.. 5

Labbarbetet 2014: Innan vi börjar.. Labbarbetet 2015: 6

Varde Java! Ett objektorienterat språk Ett av världens mest använda Senaste version 1.8 (vi kommer använda 1.7) Körs av Java Virtual Machine JVM, ej av operativsystemet + Samma program kan köras på Windows, Mac, UNIX.. - Lite långsammare än jämförbara språk 7

Imperativa delen av Java(1) Kodskelett i Ada Kodskelett i Java procedure My_Program is begin -- Code goes here end My_Program; public class MyProgram { public static void main(string[] args) { // Code goes here 8

Imperativa delen av Java(3) Deklaration och tilldelning i Ada Deklaration och tilldelning i Java procedure My_Program is x : Integer; y : Character := 'c'; z : array(1..5 ) of Integer; s : String(1..5) := "hello"; begin x := 7; end My_Program; public class MyProgram { public static void main(string[] args) { // Variables may be declared // (almost) anywhere in the code int x; char y = 'c'; int[] a = new int[5]; // 0..4 String s = hello"; x = 7; 9

Imperativa delen av Java(2) Primitiva datatyper Datatyp Storlek(bits) Största negativa värde byte 8-128 127 short 16-32,768 32,767 Största positiva värde int 32-2,147,483,648 2,147,483,647 long 64-9,223,372,036, 854,775,808 9,223,372,036,854, 775,808 Datatyp Storlek(bits) Minsta värde Största värde float 32 +- 3.403823e-45 +-3.403823e+38 double 64 +-4.940655e-324 +-4.940655e+308 Datatyp Storlek(bits) Minsta värde Största värde char 16 (!) 0 65,536 boolean (1) false true Notera: String finns inbyggt in Java, men är inte en primitiv 10

Imperativa delen av Java(5) Villkorssatser i Ada Villkorssatser i Java if a = 4 and b /= 3 and not Some_Bool_Func(c) then Do_Something; elsif a = 0 then Do_Something_Else; end if; if (a == 4 && b!= 3 &&!somebooleanmethod(c)) { dosomething(); else if (a == 0) { dosomethingelse(); 11

Imperativa delen av Java(4) Operatorer Operator Betydelse && Logiskt AND Logiskt OR! Logiskt NOT +, -, *, / Aritmetiska operatorer % Rest vid heltalsdivision (eng. Remainder) <, <=,!=, >=, > Jämförelseoperatorer ++x, x++, --i, i-- Pre- och postinkrementering/dekrementering Operator Betydelse, &, ^ Binär OR, AND och XOR << Binär vänsterskift >> Binär högerskift 12

Imperativa delen av Java(6) Upprepning i Ada while i < 10 loop i := Do_Something; end loop; loop i := Do_Something; exit when i > 10; end loop; Upprepning i Java while (i < 10) { i = dosomething(); do { i = dosomething(); while (i <= 10); if (i > 10) { break; går också bra for i in 1..10 loop Put(i); New_Line; end loop; for (int i = 0; i < 10; ++i) { System.out.println(i); 13

Imperativa delen av Java(7) Funktioner och procedurer i Ada Metoder i Java function Sum(a, b : in Integer) return Integer is begin return a + b; end Sum; procedure Print(text : in String) is begin Put_Line(text); end Print; int sum(int a, int b) { return a+b; void print(string text) { System.out.println(text); 14

Imperativa delen av Java(8) Exceptions i Ada Exceptions i Java raise Exception_Name; begin --code that raises exception --here exception when Exception_Name1 => Do_Something; when Exception_Name2 => Do_Something_Else; end throw new ExceptionName(); throw new ExceptionName("message"); try { // Code that throws exceptions here catch (ExceptionName1 e) { dosomething(); catch (ExceptionName2 e) { dosomethingelse(); 15

Imperativa delen av Java(9) Paket i Ada Paket i Java package body Package_Name is package packagename; --... end Package_Name; //... 16

Objektorienterad programmering 17

Introduktion till OOP(1) Fallstudie: Boll Slutsatser: Attribut (en. field) Information/egenskaper Metoder (en. method) Vad den kan göra 18

Introduktion till OOP(2) Fallstudie: DVD-spelare Slutsatser: Attribut (en. field) Information/egenskaper Metoder (en. method) Vad den kan göra Objekt kapslar in sin implementation, visar upp ett gränssnitt 19

Introduktion till OOP(3) Fallstudie: DVD-spelare + TV Visa upp den här filmen! Slutsatser: Attribut (en. field) Information/egenskaper Metoder (en. method) Vad den kan göra Objekt kapslar in sin implementation, visar upp ett gränssnitt Objekt samarbetar! 20

Introduktion till OOP(4) Fallstudie: Kia Cee d SW många objekt Slutsatser: Objekt kan vara lika varandra, men är ändå inte samma objekt Objekt som verkar vara likadana hör ändå ihop på något sätt.. 21

Klasser Beskriver en typ av objekt class KiaCeedSW{ Color color; int modelyear; String licenseplate; boolean isbeingrepaired;... boolean candrive() { if (isbeingrepaired) { return false; else { return true; Beskrivs av Klass Objekt Instantierar 22

Hello World! Ett komplett, objektorienterat program skrivet i Java class Human { int age = 20; void sayhello() { System.out.println( Hello world!"); public static void main(string[] args) { Human david = new Human(); david.sayhello(); 23

I know Java! Show me! 24