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

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

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

(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

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

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

TDDC77 Objektorienterad Programmering

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

SMD 134 Objektorienterad programmering

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

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

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

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

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

Objektorienterad Programmering (TDDC77)

TDDC77 Objektorienterad Programmering

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

Föreläsning 5-6 Innehåll

Objektorienterad Programmering (TDDC77)

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

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 3-4 Innehåll

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

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

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Programmeringsteknik I

Tentamen OOP

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

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

F4. programmeringsteknik och Matlab

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

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

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

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

Föreläsning 2, vecka 8: Repetition

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Parameteröverföring. Exempel. Exempel. Metodkropp

Objektorienterad programmering i Java

Anteckningar 1: Grundläggande saker

JAVA Mer om klasser och objektorientering

Lektion Java Grunder. Javas historia. Programmeringsspråket Java. Skillnaderna mellan Java och C++ JVM (Javas Virtuella Maskin)

Classes och Interfaces, Objects och References, Initialization

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

Lite mer om Javas stöd för fält. Programmering. Exempel: vad är det största talet? hh.se/db2004. Fält samt Input/Output

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

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

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

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

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

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

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

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Klassdeklaration. Metoddeklaration. Parameteröverföring

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Datastrukturer. Erik Forslin. Rum 1445, plan 4 på Nada

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

TDIU01 - Programmering i C++, grundkurs

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Objektorienterad Programmering (TDDC77)

OOP Objekt-orienterad programmering

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

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

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

TENTAMEN OOP

Programmering A. Johan Eliasson

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

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Exempelduggan. Luffarschack. Koda spel

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

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

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

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

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

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

Objektorienterad Programmering (TDDC77)

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

Tentamen , Introduktion till Java, dtaa98, dtea53

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

Lösningsförslag övning 2.

LÖSNINGSFÖRSLAG TENTAMEN

Tentamen i Programmeringsteknik I

Undervisning. Examination

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.

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Java, klasser, objekt (Skansholm: Kapitel 2)

Typkonvertering. Java versus C

1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

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

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

Malmö högskola 2008/2009 CTS

Skillnader mellan Python och Java

Lösningsförslag tentamen FYTA11 Java

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

Enkla datatyper minne

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Objektorienterad Programkonstruktion. Föreläsning 1 2 nov 2015

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

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

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

Tentamen. Lösningsförslag

Transkript:

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

Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4

public class {

public class { Åtkomst, public betyder fullt tillgänglig utifrån

public class { Vad det är för något, I detta fall en klassdefinition

public class { Vad det heter, i detta fall. Notera att klassnamn börjar med versal.

public class { Block som beskriver hur det ser ut, fungerar, innesluts i måsvingar

public class { private double ; private double ;

public class { private double ; private double ; Åtkomst, private betyder att det bara är tillgängligt inom denna klass.

public class { private double ; private double ; Vad det är, i detta fall flyttal med dubbel nogrannhet

Primitiva Datayper byte: Ett 8-bitars heltal från -128 till 127. Tar liten plats i minnet om man behöver många tal, t.ex i stora arrayer short: Ett 16-bitars heltal från -32.768 till 32.767. int: Ett 32-bitars heltal. Detta är det vanliga valet för heltal, och tar värden mellan -2.147.483.648 och 2.147.483.647 long: Ett 64-bitars heltal, som rymmer ett större spann av värden, från -9.223.372.036.854.775.808 till 9.223.372.036.854.775.807. Använd bara om du tror att du behöver så stora tal. float: Ett 32-bitars flyttal enligt standarden "single-precision 32-bit IEEE 754 floating point". Detta bör bara användas när minnesutrymme är viktigare än precision. double: Ett 64-bitars flyttal enligt standarden "double-precision 64-bit IEEE 754 floating point". Detta är det vanligaste flyttalet man använder. För nogrannare tal rekommenderas java.math.bigdecimal, som tillåter godtycklig precision i basen, och 32 bitar i exponenten. boolean: Kan ta värdena "true" eller "false". Tar inte nödvändigtvis mindre utrymme än en byte, men gör koden mer pedagogisk. char: Ett 16-bitars Unicode-tecken, tar värden från '\u0000' (eller 0) till '\uffff' (eller 65.535), kan användas med teckenkonstanter som t.ex 'A', ' @ ', eller ' あ '.

public class { private double ; private double ; Vad det är, i detta fall objekt av klassen Color

public class { private double ; private double ; Vad det heter. Notera att namn på fält börjar med gemen, och att nya ord börjar med versal. Namn på fält bör vara substantiv, eller nominalfraser.

public class { private double ; private double ; public void (double h){ = h;

public class { private double ; private double ; public void (double h){ = h; Åtkomst, public betyder fullt tillgänglig utifrån.

public class { private double ; private double ; public void (double h){ = h; Vad metoden returnerar. void betyder att metoden inte returnerar någonting

public class { private double ; private double ; public void (double h){ = h; Vad metoden returnerar. void betyder att metoden inte returnerar någonting

public class { private double ; private double ; public void (double h){ = h; Vad det heter. Notera att namn på metoder börjar med gemen och att nya ord börjar med versal. Namn på fält bör vara verb eller verbfraser.

public class { private double ; private double ; public void (double h){ = h; Argument till metoden. Det som står här ska skickas med när man anropar metoden.

public class { private double ; private double ; public void (double h){ = h; Argument till metoden. Det som står här ska skickas med när man anropar metoden. Vad argumentet är för typ, i detta fall ett flyttal med dubbel precision.

public class { private double ; private double ; public void (double h){ = h; Argument till metoden. Det som står här ska skickas med när man anropar metoden. Vad argumentet heter. Precis som fälten brukar vi ge argumenten namn som börjar med gemen, och är substantiv eller nominalfraser (eller enstaka bokstäver).

public class { private double ; private double ; public void (double h){ = h; Metodens namn och argument tillsammans kallas för metodens signatur. Varje metod I en klass måste ha en unik signatur.

public class { private double ; private double ; public void (double h){ = h; Block som beskriver vad metoden gör innesluts i måsvingar

public class { private double ; private double ; public void (double h){ = h; Tilldelning. I detta fall tar vi värdet som kom med som argumentet h, och lagrar det I fältet. Notera att det som står till höger om likhetstecknet (i detta fall en tilldelningsoperator) lagras i det som står till vänster.

public class { private double ; private double ;?

public class { private double ; private double ; public void (double h){ = h; public void (double w){ = w;

public class { private double ; private double ;...

public class { private double ; private double ;... public Color (){ return mycolor;

public class { private double ; private double ;... public Color (){ return mycolor;

public class { private double ; private double ;... public Color (){ return mycolor;

public class { private double ; private double ;... public Color (){ return mycolor;

public class { private double ; private double ;... public Color (){ return mycolor;

public class { private double ; private double ;... public Color (){ return mycolor; Retursats. En metod som inte har void som returtyp måste innehålla minst en retursats med rätt typ. I detta fall är metoden deklarerad med returtypen Color, och returnerar mycolor som ju är av den typen.

public class { private double ; private double ;...?

public class { private double ; private double ;... public double (){ return *; Retursatsen kan innehålla instruktioner.

Operatorer Aritmetik: a = b + c; a = b c; a = b * c; a = b / c; a = b % c; // modulooperator, tar resten a = a+b; // ekvivalent med a += b; a = a*b; // ekvivalent med a *= b; a += 1; // ekvivalent med ++a;

public class { private double ; private double ;... public (){ = 1; = 1; mycolor = Color.RED; Metoden som används för att skapa nya objekt kallas konstruktor. Den har ingen returtyp och heter samma sak som klassen.

public class { private double ; private double ;... public (){ = 1; = 1; mycolor = Color.RED; Klassen Color har fördefinierat ett antal färger, bl.a. röd.

public class { private double ; private double ;... public (double h, double w){ = h; = w; mycolor = Color.RED; Konstruktorn kan också ta argument.

Att skapa objekt Vi kan skapa nya objekt med nyckelordet new. Då anropas konstruktorn, och ett nytt objekt returneras. Ex: myrect; // Deklarerar en variabel // som kan lagra objekt // av typen myrect = new (); // Ett nytt objekt av // skapas och // och lagras i myrect

Terminologi Vi hänvisar till fält i ett objekt med punktnotation: Ex: myrect. Metoder anropas på liknande vis, men tar (eventuellt tomma) argument också: Ex: myrect.(10) Ett fält i ett objekt, kan i sig vara ett objekt, då kan vi skriva längre uttryck för att hänvisa till något. Ex: myrect..getblue(); // ger B värdet från färgens // RGB värde

Att köra ett program Det finns en speciell metod som man kan deklarera som heter main. Den blir startpunkten för programmet. Den deklareras såhär: public static void main(string args[]){ /* vad programmet gör */

Att köra ett program Det finns en speciell metod som man kan deklarera som heter main. Den blir startpunkten för programmet. Den deklareras såhär: public static void main(string args[]){ /* vad programmet gör */ Detta nyckelord gör att metoden kan köras innan vi har skapat några objekt.

Ett exempelprogram public class Demo{ public static void main(string args[]){ System.out.println( Demo! );

Ett exempelprogram public class Demo{ public static void main(string args[]){ System.out.println( Demo! ); Denna metod tar ett argument av typen textsträng, och skriver ut det på skärmen.

Java Skapades 1995 på Sun Microsystems, ägs och utvecklas numera av Oracle. Java används idag främst i applikationer med grafiska användargränsnitt, som ska kunna köras på många olika platformar. Exempel: Menysystemet på Blue Ray-skivor Program till mobiltelefoner (Android) Grafiska gränsnitt till andra språk, t.ex Matlab

Java Varför lära sig Java? Java är ett av världens vanligare programmeringsspråk, väl understött och dokumenterat. Man kan fort skriva program som kan köras var som helst. Java är ett relativt enkelt språk för att lära sig objektorientering, tillräckligt likt t.ex C++ eller C# för att underlätta inlärning av dessa. http://langpop.com/

http://www.csc.kth.se/utbildning/kth/kurser/dd1339