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

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

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

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

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

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

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

TDDC77 Objektorienterad Programmering

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

SMD 134 Objektorienterad programmering

(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

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

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

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

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

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

TDIU01 - Programmering i C++, grundkurs

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

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

OOP Objekt-orienterad programmering

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

Tentamen Grundläggande programmering

OOP Objekt-orienterad programmering

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

OOP Objekt-orienterad programmering

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

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmering A. Johan Eliasson

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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

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

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 12 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

D0010E. Hello world! Nedräkning. Sågtand. Övningsuppgifter i Eclipse. Skapa ett program som skriver ut "Hello world" på skärmen.

Tentamen. Lösningsförslag

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

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

Undervisning. Examination

Undervisning. Examination

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

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

JAVAUTVECKLING LEKTION 4

JAVAUTVECKLING LEKTION 8

Classes och Interfaces, Objects och References, Initialization

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

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning REPETITION & EXTENTA

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

Imperativ programmering. Föreläsning 2

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

Övning2. Variabler. Data typer

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

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

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

Objektorienterad Programmering (TDDC77)

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

TDDC77 Objektorienterad Programmering

TENTAMEN OOP

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

Objektorienterad Programmering (TDDC77)

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Tentamen OOP

Föreläsning 6: Metoder och fält (arrays)

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

OOP Objekt-orienterad programmering

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

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

F1 - Introduktion. ID1004 Objektorienterad programmering Fredrik Kilander

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

4 13 / %.; 8 </" '': " / //&' " " ' * TelefonKostnad +,-%&. #!" $% " &' . > / ' 5 /' * 13/ &' static Math 1+" &'/ % 12 "" static "' * 1 /") %& &

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

Tentamen , Introduktion till Java, dtaa98, dtea53

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

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

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

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

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

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

Föreläsning 2, vecka 8: Repetition

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

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

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

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

F5 Selektion och iteration. ID1004 Objektorienterad programmering Fredrik Kilander

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk

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

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

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

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! Kursledning Kursledare: Jonas Lindgren Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson Examinator: Torbjörn Jonsson Kurssekreterare: Anna Grabska Eklund 1

Kursinnehåll 12 Föreläsningar (24h) 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 Innan vi börjar.. 2

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 Imperativa delen av Java(1) Kodskelett i Ada Kodskelett i Java procedure myprogram is begin null;--code goes here end myprogram; public class MyProgram{ public static void main(string args[]){ //code goes here 3

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) true false Notera: String finns inbyggt in Java, men är inte en primitiv Imperativa delen av Java(3) Deklaration och tilldelning i Ada Deklaration och tilldelning i Java procedure myprogram is x : Integer; y : Character := 'c'; z : array(1..5 ) of integer; s : String(1..5) := "hello"; begin x := 7; end myprogram; 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 = " 你好 "; x = 7; 4

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 XOR << Binär vänsterskift >> Binär högerskift 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 &&!some_bool_func(c)){ dosomething(); else if(a == 0){ dosomethingelse(); 5

Imperativa delen av Java(6) Upprepning i Ada Upprepning i Java for I in 1..10 loop Put(I); New_Line; end loop; while i < 10 loop i = do_something; end loop; loop i = do_something; exit when i > 10; end loop; for(int i = 1; i <= 10; i++){ System.out.println(i); while(i < 10){ i = dosomething(); do{ i = dosomething(); while(i <= 10); if(i > 10){ break; går också bra 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); 6

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 e1){ dosomething(); catch(exceptionname2 e2){ dosomethingelse(); Imperativa delen av Java(9) Paket i Ada Paket i Java package body Package_Name is package packagename; --... end Package_Name; //... 7

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

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

Introduktion till OOP(4) Fallstudie: många objekt Slutsatser: Objekt kan vara exakt lika varandra, men är ändå inte samma objekt Objekt som verkar vara likadana hör ändå ihop på något sätt.. Klasser Beskriver en typ av objekt class PacManBaddie{ int color; Point position; boolean isvulnerable;... boolean trytoeatme(){ if(isvulnerable){ return true; else{ return false; Beskrivs av Klass Objekt Instantierar 10

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