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

Relevanta dokument
Programmering för språkteknologer II, HT2014. Rum

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

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

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

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

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

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

2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik

Lösningsförslag till exempeltenta 2

Grundläggande programmering med C# 7,5 högskolepoäng

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

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

Lösningsförslag till exempeltenta 1

Föreläsning REPETITION & EXTENTA

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

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

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

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

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

725G61 - Laboration 5 Grundläggande objektorientering. Johan Falkenjack

SMD 134 Objektorienterad programmering

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

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

(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

Laboration 1 - Grunderna för OOP i Java

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel

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

Laboration 13, Arrayer och objekt

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

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

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

Stackar, köer, iteratorer och paket

Föreläsning 1 & 2 INTRODUKTION

Programmeringsteknik II

Tentamen , Introduktion till Java, dtaa98, dtea53

Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass

Imperativ programmering. Föreläsning 4

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

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

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

Tentamen i Grundläggande programmering STS, åk 1 fredag

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

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

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

Tentamen OOP

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Tentamen i Algoritmer & Datastrukturer i Java

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

Anteckningar 1: Grundläggande saker

Lösningsförslag övning 2.

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

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

JAVA Mer om klasser och objektorientering

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

OOP Objekt-orienterad programmering

Föreläsning 3: Abstrakta datastrukturer, kö, stack, lista

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

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

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

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

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

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

Tentamen. Lösningsförslag

Algoritmer. Två gränssnitt

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

Repetition av viktiga begrepp inom objektorienterad programmering

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

tentaplugg.nu av studenter för studenter

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

Tentamen i Grundläggande programmering STS, åk

Kort om klasser och objekt En introduktion till GUI-programmering i Java

PROGRAMMERING-Java TENTAMINA

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

DAT043 Objektorienterad Programmering

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

Föreläsning 3-4 Innehåll

1 Repetition av viktiga begrepp inom objektorienterad programmering

Tentamen ID1004 Objektorienterad programmering December 15, 2012

JAVAUTVECKLING LEKTION 8

Namn: Personnr: 1 2D1310 Programmeringsteknik i Java för B,V (1p) 13 januari 2001, kl Hjälpmedel: En Javabok. För betyget godkänt krävs at

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

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

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Kursplanering Objektorienterad programmering

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

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

Transkript:

Programmering för språkteknologer II, HT2011 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv11/pst2/

Kursplan Mål Efter avslutad kurs skall studenten för att förtjäna betyget Godkänd minst kunna redogöra för följande begrepp och skriva fungerande Javaprogram som exemplifierar och drar nytta av dem: 2

Kursplan Mål - objektorientering: arv, polymorfism, abstrakta klasser, gränssnitt - stackar, köer och länkade listor - paket och synlighet - undantag - ändliga automater - matchning med reguljära uttryck - hashtabeller och mappningar - sökning och sortering 3

Kursplan Examination Tentamen: Alla lärande mål Laborationer: 1. Stackar och köer 2. Ändliga automater och reguljära uttryck 3. Sökning och sortering 4. Arv och undantag 4

Kursplan Betygskriterier Betyget G: Minst G på samtliga examinationsmoment. Betyget VG: Utöver kraven för G, minst ett av följande krav: - VG på tentamen och minst en laboration - VG på tre laborationer 5

Planering Två pass per gång - Lektion Turing (2 timmar) - Laboration Chomsky (2 timmar) 6

Planering: Introduktion Inledning, repetition (1/9) Arv, polymorfism, abstrakta klasser, gränssnitt (5/9) 7

Planering: Del 1 - ADT Abstrakta datastrukturer - ADT (7/9) Stackar, köer, Parametiserade typer, iteratorer Abstrakta datastrukturer - ADT (12/9) Dubbellänkade listor Paket Undantag Laboration: Stackar och köer 8

Planering: Del 2 Automater Automater och reguljär uttryck (15/9) Hashtabeller, mappning och flerdimensionella fält (19/9) Laboration: Automater och reguljära uttryck 9

Planering: Del 3 - Algoritmer Sökning(28/9) Linjärsökning Binärsökning Sökträd Sortering (5/10) Urvalssortering Quicksort Laboration: Sökning och Sortering 10

Planering: Del 4 - OOP Mer om OOP (10/10) Blandat Laboration: Arv och undantag 11

Planering: Avslutning Repetition (19/10) - Exempeltenta / frågestund Handledning(1/11) 12

Viktiga datum Tentamen 22/10 9-13 (OBS: Lördag) Bergsbrunnagatan, sal 2 Omtentamen 26/11 9-13 (OBS: Lördag) Bergsbrunnagatan, sal 2 Deadlines för laborationerna: - Deadline 1 (4/11) - Deadline 2 (2/12) Andra chansen 13

Programskal public class Name{ public static void main(string args[]) {... Koden behöver sparas i filen Name.java 14

Metoder En rad programsatser som beskriver hur en metod utför något. sats; 15

Metoder Indata: meningsfulla argument/parametrar: arg_1 arg_2... arg_n sats; 16

Metoder Indata: Lämpliga argument/parametrar Utdata: Resultatet (valbart) arg_1 arg_2... arg_n sats; resultat 17

Lokala variabler public class Main{ i public static void main(string args[]) { // deklarera i utan tilldelning int i; 18

Lokala variabler public class Main{ i public static void main(string args[]) { // deklarera i utan tilldelning int i; j 5 // deklarera j med tilldelning int j = 5; 19

i 4 Lokala variabler public class Main{ public static void main(string args[]) { // deklarera i utan tilldelning int i; j 5 // deklarera j med tilldelning int j = 5; // i tilldelas värde 4 i = 4; 20

Enkla typer - Heltal Typ Minsta värde Högsta värde byte - 127 128 short - 32 768 32 767 int -2 147 483 648 2 147 483 647 long -9 223 372 036 854 775 808 9 223 372 036 854 775 807 21

Enkla typer - Decimaltal Typ Minsta värde Högsta värde Noggrannhet float 7 siffror double 3,4 10 38 3,4 10 38 1,7 10 308 1,7 10 308 15 siffror 22

Enkla typer - Sanningsvärden Typ Minsta värde Högsta värde boolean falskt sant 23

Enkla typer - char char är en teckentyp Exempel: char c = 'A'; 24

Normalt programflöde sats; sats; sats; 25

Normalt programflöde- exempel public class Normal{ public static void main(string args[]) { int i = 4; int j = 5; boolean samenumber = (i == j); System.out.println(sameNumber); 26

Villkorsflöde sant? sats; falskt sats; sats; sats; sats; sats; 27

Villkorsflöde - Exempel public class Condition{ public static void main(string args[]) { int i = 4; int j = 5; if(i == j) System.out.println("Same number"); else { System.out.print("Not the same "); System.out.println("number"); 28

Upprepningsflöde? sats; sant falskt steg; sats; sats; 29

Upprepningsflöde Exempel 1 public class While{ public static void main(string args[]) { int i = 0; while(i < 4) { System.out.println(i); i++; 30

Upprepningsflöde Exempel 2 public class For{ public static void main(string args[]) { for(int i = 0; i < 4; i++) System.out.println(i); 31

Fält(array) Ett fält(array) är en samling element av samma typ. index: 0 1 2... n 32

Fält(array) Ett fält(array) är en samling element av samma typ. Exempel: int[] array = new int[5]; array index: 0 1 2 3 4 33

Fält(array) Ett fält(array) är en samling element av samma typ. Exempel: int[] array = new int[5]; array[2] = 17; array index: 17 0 1 2 3 4 34

Fält(array) Ett fält(array) är en samling element av samma typ. Exempel: int[] array = new int[5]; array[2] = 17; array[4] = 42; array index: 17 42 0 1 2 3 4 35

Fält(array) Att loopa genom ett fält public class Array{ public static void main(string args[]) { int[] array = new int[5]; array[0] = 34; array[1] = 100; array[2] = 17; array[3] = 500; array[4] = 42; for(int i = 0; i < array.length; i++) System.out.println(array[i]); 36

Hur använder man javafilen? 1. Öppna terminalen 2. Gå till den katalog där filen med koden finns i (använd kommandot cd) 3. För att kompilera filen skriver man: javac Filnamn.java 4. För att köra programmet skriver man: java Filnamn 37

Klasser/Objekt Klass beskriver objekt class Circle{... class Square{... 38

Exempel - Person public class Person{ // instance-variable private String name = ""; // constructor public Person(String name){ this.name = name; public synlig för alla private endast synlig för klassen 39

Exempel - Person public private name 40

Exempel - Person public class Person{ private String name = ""; // constructor public Person(String name){ this.name = name; // method public String getname(){ return name; 41

Exempel - Person public getname() private name 42

Exempel - Person Hur kan vi lägga till ålder? public class Person{ private String name = ""; public Person(String name){ this.name = name; public String getname(){ return name; 43

Exempel - Person public class Person{ private String name = ""; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age; public String getname(){ return name; 44

Exempel - Person public getname() private name age 45

Exempel - Person Hur kan vi komma åt åldern? public class Person{ private String name = ""; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age; public String getname(){ return name; 46

Exempel - Person public class Person{ private String name = ""; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age; public String getname(){ return name; public int getage(){ return age; 47

Exempel - Person public getname() private name age getage() 48

Instansvariabler Instansvariabel variabel med ett värde för varje instans av en klass Exempel i klassen Person: private int name; private int age; 49

Klassvariabler Klassvariabler - unik variabel för klassen och finns tillgänglig för varje instans av klassen Alla instanser av klassen delar på klassvariablerna. Exempel: public static int adultage = 18; 50

Klassen Person public class Person{ public static int adultage = 18; private String name = ""; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age;... 51

Exempel - Person public getname() private name age getage() adultage 52

Klassen Person Hur kan vi använda adultage? public class Person{ public static int adultage = 18; private String name = ""; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age;... 53

Klassen Person Hur kan vi använda adultage? public class Person{ public static int adultage = 18; private String name = ""; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age;... public boolean isadult() { return age >= Person.adultAge; 54

Exempel - Person public getname() private name age getage() isadult() adultage 55

Klassmetoder Klassmetod En metod som får använda klassvariabler men inte instansvariabler Exempel: public static int getadultage() { return Person.adultAge; 56

Klassen Person public class Person{ public static int adultage = 18; private String name = ""; private int age = 0; public Person(String name, int age){ this.name = name; this.age = age;... public static int getadultage() { return Person.adultAge; 57

Exempel - Person public getname() private name age getage() isadult() adultage getadultage() 58

UML Klassnamn variabler metoder Person 59

UML Klassnamn variabler metoder Person +adultage: int - name: String - age: int 60

UML Klassnamn variabler metoder Person +adultage: int - name: String - age: int +getname(): String +getage(): int +isadult() : boolean +getadultage(): int 61

UML Person +adultage: int - name: String - age: int +getname(): String +getage(): int +isadult() : boolean +getadultage(): int Förklaring klassvariabel klassmetod - privat +publik 62

Nästa genomgång Arv polymorfi abstrakta klasser gränssnitt 63