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



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

SMD 134 Objektorienterad programmering

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

OOP Objekt-orienterad 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

Föreläsning 1 & 2 INTRODUKTION

Programmeringsteknik med C och Matlab

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

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

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

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

Tentamen OOP

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

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

Programmering A. Johan Eliasson

OOP Objekt-orienterad programmering

Objektorienterad Programmering (TDDC77)

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

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

Editering, Kompilering och Exekvering av Javaprogram

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

Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.

Objektorienterad programmering D2

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

SMD 134 Objektorienterad programmering

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Inledande programmering med C# (1DV402) 27+15=42 1 (22)

Objektorienterad programmering i Java

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

Tentamen i Objektorienterad programmering

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

Objektorienterad programmering i Java

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109

Övning2. Variabler. Data typer

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

Objektorienterad Programmering (TDDC77)

Tentamen, EDAA20/EDA501 Programmering

Föreläsning 5-6 Innehåll

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

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

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

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Att använda pekare i. C-kod

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

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

Tentamen, EDAA10 Programmering i Java

Chapter 3: Using Classes and Objects

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Laboration 10 - NetBeans

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

1 Funktioner och procedurell abstraktion

Institutionen för TENTAMEN CTH VT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

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

Institutionen för TENTAMEN CTH HT-15 Datavetenskap TDA540. Tentamen för TDA540 Objektorienterad programmering

Undervisning. Examination

För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

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

DAT043 Objektorienterad Programmering

Övningar Dag 2 En första klass

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

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

DELPROV 1 I DATAVETENSKAP

Programmering i C++ En manual för kursen Datavetenskaplig introduktionskurs 5p

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

Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.

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)

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

Objektorienterad programmering i Java

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

OOP Omtenta

Tentamen, EDA501 Programmering M L TM W K V

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

Introduktion till arv

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

F4. programmeringsteknik och Matlab

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Tentamen , Introduktion till Java, dtaa98, dtea53

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

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

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

Objektsamlingar i Java

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

Malmö högskola 2008/2009 CTS

Lösningsförslag övning 2.

Inledande programmering med C# (1DV402) Introduktion till C#

Transkript:

Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Vem är vem på kursen Objektorienterad programvaruutveckling GU (DIT011) Kursansvarig : Katarina Blom, tel 772 10 60 Rum: 6126 (E-huset) Mail: blom@chalmers.se Handledare : Rasmus Knutsson Mail: farmand@student.chalmers.se Föreläsning 1 Katarina Blom 1 2 Kursens hemsida http://www.cse.chalmers.se/edu/course/dit011/ Titta på kurshemsidan ofta Kursens organisation Undervisningen består av: Åtta föreläsningar - Stöd för inläsning av boken. - Inget för Java-experten. Cirka en gruppövning per vecka - Nybörjarkaraktär på dessa. Labhandledning - Labhandledare finns i labsal på labtiderna (se schema) redo att svara på frågor. Kursbok Cay Horstmann: Big Java 3rd edition - Det finns en tunnare variant av boken (Java Concepts 5ht edition) som innehåller en delmängd av kapitlen ur Big Java. Om du bara tänker läsa denna kurs så räcker den tunnare varianten alldeles utmärkt. Om du följer datavetenskapligt program (och alltså även tänker läsa fortsättningskursen) är Big Java boken förmodligen att föredra) - Det finns mycket Javalitteratur. Har du redan en bok om Java? Visa den för mig, den kanske täcker innehållet i kursen (isåfall ska du ju inte köpa en till bok). - Boken finns förmodligen att få tag på begagnad (fast då i äldre versioner). 3 4

Examination För att få godkänt på kursen måste följande moment vara godkända: Tre laborationer - Utföres i grupper om 2 personer. - Redovisas enligt respektive labpm. Skriftlig tentamen - Huvudsakligen programmeringsuppgifter - En (inbunden) bok om Java är tillåten som hjälpmedel på tentan. Kursens mål och innehåll Kursen ska ge en introduktion till objektorienterad programmering Du lär dig att utforma, implementera, testa och dokumentera enkla program Som programspråk används Java. De centrala delarna i språket behandlas. 5 6 Java Programspråket Java, utvecklat på Sun 1995, blev på några månader det hetaste språket i datavärlden och miljarder dollar har redan satsats i utveckling av mjukvara och hårdvara som bygger på Java. Java är (helt) objektorienterat. Java är plattformsoberoende (dvs ett program skrivet på en Pc går lika bra att köra på tex. en Mac) Körbara javaprogram kan läggas ut på webbsidor Java har standardbibliotek för nätprogrammering och grafiska användargränssnitt. (Bland annat) plattformsoberoendet gör exekveringen långsam. 7 Varför Java? (Relativt) enkel och ren språkdesign (en programmerare som är van vid C/C++ känner sig hemma i Java, eftersom mycket av syntaxen är hämtad från C). Stor växande anvädning. Bra, gratis implementationer. Mycket stödmaterial på webben. 8

Att programmera Att programmera är att instruera en dator att göra det vi vill att den ska göra. Instruktionerna sätter man ihop till ett program. Man skriver programmet i något programspråk (i vårt fall Java). För att kunna köra programmet måste man kompilera det, dvs Java-instruktionerna måste översättas till instruktioner som processorn (på den dator man kör på) kan tolka. Objektorienterad programmering Ett objektorienterat program är uppbyggt av en uppsättning objekt som interagerar (samverkar) med varandra. Ett objektorienterat program byggs upp av delar, klasser, efter de begrepp som hanteras. Ett objekt är en instans, eller ett exemplar, av en klass. Programmets uppgift är att manipulera objekten 9 10 Objekt Ett objekt karaktäriseras av Vad man kan göra med det (vilka metoder ett objekt erbjuder) Vilka interna tillstånd objektet kan vara i (vilka tillståndsvariabler objektet har). Klass En beskrivning eller mall över hur objekten ska fungera. Ett exempel: En räknare Vilket internt tillstånd har en räknare? Vilka operationer kan man utföra på en räknare, dvs vad kan man göra med den? 11 12

En klassdeklaration för en räknare public class Counter{ private int val; Att förstå en klassdeklaration public class Counter { public Counter(){ val = 0; public void incr(){ val = val+1; public void reset(){ val = 0; public int getval(){ return val; /* Tillståndsvariabel */ private int val; /* Konstruktor */ public Counter(){ val = 0; /* Metoder */ public void incr(){ val = val+1; public void reset(){ val = 0; public int getval(){ return val; 13 14 Klasser och objekt Att använda klassen Counter En klass är en mall från vilken man kan skapa många objekt. Varje nytt objekt har sin egen uppsättning tillståndsvariabler. /* Skapa ett objekt */ /* c är nu namnet på det skapade objektet. Namnet används när man vill anropa objektets metoder: */ /* Påverka objektets tillstånd */ /* Avläsa objektets tillstånd */ Var skriver man den här koden? 15 16

Programmets startkod main public class RäkneExempel{ public static void main(string[] ar){ Hela programmet public class Counter{ private int val; public Counter(){ val = 0; public void incr(){ val = val+1; public void reset(){ val = 0; public int getval(){ return val; public class RäkneExempel{ public static void main(string[] ar){ 17 18 In- och ut- matning Det finns fördefinerade klasser och objekt i Java. Bland annat finns två fördefinerade objekt för in- och ut- matning: System.in är ett objekt av klassen InputStream, knutet till tangentbordet. System.out är ett objekt av klassen PrintStream, knutet till bildskärmen. Lägg till en utskrift public class RäkneExempel{ public static void main(string[] ar){ System.out.println(värde); 19 20

Kompilering och exekvering >> javac Counter.java >> javac RäkneExempel.java >> java RäkneExempel 2 >> ls Counter.java Counter.class RäkneExempel.java RäkneExempel.class Primitiva typer Java innehåller ett litet antal primitiva (inbyggda) typer, bland annat: int för heltal. double för flyttal. boolean för sanningsvärden. char för tecken. Alltså: Skriv java-koden i lämpliga filer (med suffixet.java). Kompilera programmet med kompilatorn javac Kör programmet med kommandot java 21 22 Aritmetik Konstanter - av typerna int och double: 3-25 3.1415926 3e-10 - av typerna char och boolean: K 5 true false Operatorer som i Haskell, utom - Heltalsdivision, som skrivs / - Modulo operatorn som skrivs % Variabler Variabeldeklaration typnamn variabelnamn; eller typnamn variabelnamn = initialvärde; int val = 53; double epsilon = 1e-5; boolean stängd; Variabler är namn på minnesceller: var 53 epsilon 0.00001 stängd 23 24

Typkonvertering int m = 3; int n = 5; double x = 2.5; x = x*m; Värdet av m konverteras till double innan multiplikationen utföres. x = m/n; Värdet av högerledet konverteras till double före tilldelning. Obs heltalsdivision. n = x; Typfel! double kan inte lagras i heltalsvariabel. Klasser är också typer Klassdeklaration Klassnamn var; eller Klassnamn var = new Klassnamn(); (Anropet till höger om likhetstecknet är egentligen ett konstruktoranrop ) String str = new String(); c och str kallas referensvariabler. String är en fördefinerad klass. Referensvariabler refererar till en plats i minnet där objekten finns lagrade. 25 26 Textsträngar I Java finns en fördefinerad klass som heter String. Objekt av denna klass är textsträngar. String namn = new String( Lotta ); Några metoder som finns definerade för String-objekt: namn.length(); //antal tecken i namn namn.charat(2); //tecknet på pos. 2 namn.touppercase();//strängen LOTTA För String-objekt finns också en operator för strängkonkatenering +: String par = Anders och +namn; 27