TDDE10 TDDE11, 725G90. Gemensam kurswebsida på:

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

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

Exempel på ett litet Ada-program

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

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

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

Tentamen Grundläggande programmering

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

F4. programmeringsteknik och Matlab

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

TDIU01 - Programmering i C++, grundkurs

SMD 134 Objektorienterad programmering

Tentamen ID1004 Objektorienterad programmering May 29, 2012

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

Objektorienterad Programmering (TDDC77)

OOP Objekt-orienterad programmering

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Imperativ programmering. Föreläsning 2

Föreläsning 1 & 2 INTRODUKTION

TDDC77 Objektorienterad Programmering

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

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

(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

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

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

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

Tentamen OOP

TDDC77 Objektorienterad Programmering

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

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

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 F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

Introduktion till MATLAB, med utgångspunkt från Ada

Introduktion C-programmering

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

Objektorienterad Programmering (TDDC77)

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

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

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

Föreläsning 6: Introduktion av listor

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

Programmering A. Johan Eliasson

Föreläsning 4: Poster

Objektorienterad Programmering (TDDC77)

Repetition C-programmering

Föreläsning REPETITION & EXTENTA

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

KOMPLETTERANDE HEMTENTAMEN TDDB53

Klassdeklaration. Metoddeklaration. Parameteröverföring

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

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

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Föreläsning 1 & 2 INTRODUKTION

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

Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??

KOMPLETTERANDE HEMTENTAMEN TDDB53

Översikt MERA JAVA OCH ECLIPSE. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning. Uttryck och tilldelning

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

JAVAUTVECKLING LEKTION 4

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

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

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

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

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

Parallellism, återblick

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12

Föreläsning 7: Filer

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Föreläsning 2, vecka 8: Repetition

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

OOP Objekt-orienterad programmering

Tentamen ID1004 Objektorienterad programmering October 29, 2013

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

TENTAMEN OOP

JAVAUTVECKLING LEKTION 8

TDIU01 - Programmering i C++, grundkurs

Mer källkod. Styrstrukturer Val Slingor Operatorer Källkodsexempel med minne. Erik Forslin. Rum 1445, plan 4 på Nada

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

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

Detta dokument är ett exempel, cirka hälften av en tentamen för TDA545 Objektorienterad programvaruutveckling

Arrayer. results

Föreläsning 3-4 Innehåll

Anteckningar 1: Grundläggande saker

Föreläsning 3. Stack

Grundläggande programmering DVG A08 & ISG A04. Allmän information. Å vem är jag då. Karlstads Universitet, Johan Öfverberg 1

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

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

En kort text om programmering i C.

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

Föreläsning 5: Introduktion av pekare

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

OOP Objekt-orienterad programmering

Transkript:

TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 1 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av Java Hello World! Gemensam kurswebsida på: www.ida.liu.se/~tdde10 1

Kurspersonal Kursledare: Erik Nilsson Examinator: Torbjörn Jonsson Kursassistent : Magnus Nielsen Labbhandledare : Henrik Fredriksson Labbhandledare : Alojz Milecevic Labbhandledare : Gustav L'Estrade Labbhandledare : Christoffer Holm Labbhandledare : Alexander Johansson Labbhandledare : Kerstin Söderkvist Kursadministratör: Madeleine Häger Dahlkvist 2

Kursinnehåll (ca) 10 Föreläsningar (20h) (8 för TDDE11) 4 Lektioner (8h) 5 Laborationer (26h i sal) Projektarbete (12h) (EJ TDDE11) Datortentamen 20h + 8h + 26h +12h = 66h schemalagd tid => mycket hemarbete! Kurslitteratur Objektorienterad Programmering och Java av Per Holm Java Direkt med Swing av Jan Skansholm 3

Kursöversikt 4

Kursöversikt Vecka Teoretiskt Praktiskt Kommentar 3 FÖ intro, 3x FÖ OOP Lab 0, Webtutorial (1 pass) 4 Lektion 1 Webtutorial, Lab 1 (1+2 pass) 5 2x FÖ Datastruktuer, Generics Lektion 2 Lab 1 (2 pass) Lab 2 (1 pass) 6 FÖ Grafik, Lektion 3, FÖ Extra Lab 2 (1 pass) Lab 3 (2 pass) 7 2 x FÖ Proj (ej TDDE11) Lab 3 (1 pass) 1 Extrapass Kravspec. skrivs 8 LE Projekt (ej TDDE11) 1 Extrapass, Projekt Kravspec. OK => börja koda 9 Projekt 5 10 Projekt, Demo Reflektion skrivs.

Lite om laborationerna Anmälan till grupp i Webreg Måste vara registrerad... Ni går i grupp A eller B Eclipse ThinLinc Muntlig demo i labsal Kodinlämning via skriptet sendlab Fusk... 6

Kursens utveckling Förra året var piloten, i år kör vi 2.0! Lite från kursutvärderingarna: PROBLEM ORSAK FÖRBÄTTRING I 2.0 Lab 1 Supertung Mycket krångel med sendlab - Svår (nytt tänk) - Labtid i underkant - Le 1 dåligt nyttjad - Webtutorialen skippades - Gjordes i fel ordning - Ovana med terminalen - En obligatorisk del blivit VG-del - Lånar ett pass från lab 2 - Le 1 kommer lite senare - Webtutorialen obligatorisk - Ingår nu i webtutorialen, före lab 1. - term_hjalp + info på hemsidan För lite hjälp på labpassen! Info om tentan bristfällig Inte tillräckligt med live-kodning - Passen utnyttjades inte maximalt. - Ekonomi... - Första gången kursen gick... - Blir ofta inte så interaktivt => passivt lärande - Uppmuntrar Copy/Paste - Bättre verkningsgrad behövs! - Mer förberedelser/hemarbete! - Info finns nu och blir samma i år (reservation för mindre förändringar). 7 - Kanske fler! Vi får se!

Nu till Java! Ett objektorienterat språk Ett av världens mest använda Senaste version 1.8 (1.7 funkar i kursen) 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 8

Imperativa delen av Java(1) Kodskelett procedure My_Program is begin -- Huvudprogram end My_Program; Källkodsfilen heter my_program.adb public class MyProgram { public static void main(string[] args) { // huvudprogram Källkodsfilen heter MyProgram.java 9

Imperativa delen av Java(2) Deklaration och tilldelning 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) { // Deklaration och satser mixas int x; x = 7; char y = 'c'; int[] a = new int[5]; // index 0..4 String s = hello"; 10

Imperativa delen av Java(3) Datatyper Integer Float Boolean Character String int float, double boolean char String Primitiva Datatyper Record Array Class [], Inbyggda klasser t.ex ArrayList 11

Imperativa delen av Java(4) Datatyper i minnet... x : 1 d : b : c : TRUE 'f' s : s innehåller en referens (en pekare). 3.14 'h''e' 'l' 'l' 'o' int x = 1; double d = 3.14; boolean b = true; char c = 'f'; Primitiva Datatyper String s ; = new String( hello ); s är en variabel av klasstyp Just String går att tilldela på ett enklare sätt String s = hello ; I stort sätt alla övriga datatyper i java är av klasstyp! D.v.s. referenserna är överallt! 12

Imperativa delen av Java(5) Villkorssatser 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(); 13

Imperativa delen av Java(6) while i < 10 loop i := Do_Something; end loop; Upprepning while (i < 10) { i = dosomething(); if (i > 10) { break; går också bra loop i := Do_Something; exit when i > 10; end loop; do { i = dosomething(); while (i <= 10); 14

Imperativa delen av Java(7) Upprepning for i in 1..10 loop Put(i); New_Line; end loop; for (int i = 0 ; i < 10 ; ++i ) { System.out.println(i); Körs 1 gång, Villkor för om loopen innan första varvet. skall fortsätta gå. Körs i slutet av varje varv. 15

Imperativa delen av Java(8) 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 x += 1; 16

Imperativa delen av Java(9) Underprogram 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; Parametrar har alltid parametermod in void print(string text) { Returtyp System.out.println(text); Procedurer och funktioner metoder (funktioner) 17

Imperativa delen av Java(10) Exceptions raise Exception_Name; throw new ExceptionName(); throw new ExceptionName("message"); begin -- Kod som kastar exception exception when Exception_Name1 => Do_Something; when Exception_Name2 => Do_Something_Else; end try { // Kod som kastar exception catch (ExceptionName1 e) { dosomething(); catch (ExceptionName2 e) { dosomethingelse(); Vi tittar närmre på exceptions senare... 18

Imperativa delen av Java(11) Poster type My_Record_Type is record V : Datatype; -- end record; class My_Class { Datatype v; int somemethod() { // operationer på datat! Poster används för att samla data som hör ihop. Klasser används för att samla data och metoder som hör ihop. Underprogram som hanterar datat deklareras utanför posten. 19

Imperativa delen av Java(12) Paket package body Package_Name is --... end Package_Name; package packagename; //... Paket är för att samla ihop data med underprogram i en separat modul. Paket är för att samla klasser som hör ihop. Klasser ligger på egna filer. Paket är alltså mappar. Adas paket är mer som mina klasser. 20

Imperativa delen av Java(13) Inkludering av separata moduler with Package_Name; use Package_Name; import packagename.classname; import otherpackage.*; I Ada inkluderar man paket. I java inkluderar man klasser. Man kan dock ta allt från ett paket med *. 21