Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling



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

OOP Objekt-orienterad programmering

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

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

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

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

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

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

Objektorienterad programmering i Java

(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

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

Enkla variabler kontra referensvariabel

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

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

Lösningsförslag övning 2.

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

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

OOP Objekt-orienterad programmering

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

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

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

Laboration 1 - Grunderna för OOP i Java

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

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

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

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

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

Objektsamlingar i Java

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

Java, klasser, objekt (Skansholm: Kapitel 2)

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

JAVAUTVECKLING LEKTION 11

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

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

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

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

Föreläsning 5-6 Innehåll

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

Objekt och klasser - Introduktion

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

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

Arrayer. results

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

Classes och Interfaces, Objects och References, Initialization

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

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

Tentamen OOP

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

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

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Objektorienterad Programmering DAT043

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

Övning2. Variabler. Data typer

DAT043 - Föreläsning 7

Mer om klasser och objekt

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Hur ser ett Java-program ut?

Objektorienterad programmering D2

Klasser och objekt. Henrik Johansson. August 20, 2008

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

OOP Objekt-orienterad programmering

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

Föreläsning 7: Objektorienterad programmering - introduktion

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad Programmering (TDDC77)

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

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

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

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

Tentamen ID1004 Objektorienterad programmering April 7, 2015

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

Typkonvertering. Java versus C

Introduktion till Java

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

Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )

Arrayer (fält)

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

Objektorienterad programmering Föreläsning 4

Objektorienterad Programmering (TDDC77)

Föreläsning 3-4 Innehåll

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

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 10. ADT:er och datastrukturer

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

Programmeringsteknik I. Föreläsning 3: Klasser och arrayer

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.

Objektorienterad Programmering (TDDC77)

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

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

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

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

JAVA Mer om klasser och objektorientering

Objekt och referenser

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

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

F7 - Arrayer. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad programmering

Transkript:

metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man hitta på själv 2 byte -2 8 2 8-1 short -2 15 2 15-1 int -2 31 2 31-1 long -2 63 2 63-1 float -2 31 2 31-1 double -2 63 2 63-1 Typomvandling 8 bits 16 bits 32 bits 64 bits byte, boolean short, char int, float long, double 3 Typ konvertering (cast) Används när man explicit vill ändra typen av ett uttryck. Exempel: double x = 2.75; int y = (int) x; double z = y; Fungerar bara för rimliga konverteringar och i princip inte mellan primitiva och referensdatatyper. Typomvandling mellan primitiva och referensdatatyper För att omvandla primitiva datatyper till deras motsvarande wrapper klasser är enkel t.ex: int i=3; Integer j=i; Men vill man till exempel omvandla en String till en int fårman läsa API:n. 5 1

Typomvandling mellan referensdatatyper För att omvandla primitiva datatyper till deras motsvarande wrapper klasser är enkel t.ex: int i=3; Integer j=i; Men vill man till exempel omvandla en String till en int fårman läsa API:n. Exempel Skriv ett program som frågar efter radien för en cirkel och beräknar omkretsen och arean för cirkeln med hjälp av två metoder. -utöka programmet sedan så att det frågar om man vill ange en ny radie varje gång, så att man kan beräkna flera gånger utan att programmet avslutas. 8 Array Array är en indexerad lista av element som har samma typ. Man kan både ha arrayer av primitiva typer (int, double, char,...) och arrayer av referens datatyper (String, ). int[] talarray=new int[6]; int t= talarray[0]; talarray[4]= 121; talarray[5]= 18; talarray Index: 0 1 2 3 4 5 0 0 0 0 121 0 18 0 9 String[] namnarray=new String[6]; namnarray[0] = vahid ; namnarray[1]= Johan ; namnarray[4]= namnarray[1]; namnarray Index: 0 1 2 3 4 5 vahid Johan null null null 10 Storlek på en array Varje array har ett attribut som är av typen int och visar antal element i arrayen String[] kursbeteckningar = new String[3]; int storlek = kursbeteckningar.length; Metoden main och parametern args public static void main (String[] args){ Parametern args tilldelas automatisk av de värden som man anger när man kör ett java program: java prg arg1 arg2 arg3 OBS! blanda inte attributen length och metoden length() som finns i klassen String 11 12 2

Klassen ArrayList Klassen ArrayList finns i paketet java.util, därför detta paket ska importeras om man vill använda sig av klassen ArrayList. Klassen ArrayList har bl.a tre viktiga metoder. minlista.size(); //returnerar talet 0 minlista.add( element 1 i listan ); minlista.size(); //returnerar talet 1 minlista.add( element 2 i listan ); String e = (String) minlista.get(0); 13 minlista.add( Första element ); minlista.add( Andra element ); String element=(string)minvek.get(1); minlista.remove(0); minlista element Första element Instans av klassen ArrayList Andra element 14 minlista.add( Första element ); minlista.add( Andra element ); String element=(string)minvek.get(1); minlista.remove(0); minlista Instans av klassen ArrayList Klass och instans (objekt) En klass är en mall för ett objekt t.ex. bil, konto Ett objekt är en instans av en klass t.ex. den röda bilen, mitt lönekonto att skapa objekt i java: kännetecken (oftast): new t.ex. Scanner stdin = new Scanner(... element Andra element 15 undantag: i java API den enda klass som inte behöver new för att skapa ett objekt är klassen String och wrapper klasser. t.ex. String namn = Vahid String namn = new String( Vahid ); 16 Instansvariabler och instansmetoder class Person { instansvariabler String name; byte age; String mailaddress; public Person(String n, byte a,string m){ name=n; age=a; mailaddress=m; public String getname(){ return name; public byte getage(){ return age; public String getmailaddress(){ return mailaddress; konstruktor instansmetoder 17 Referenser Alla variabler som används för att komma åt ett objekt är referenser. En referensvariabel innehåller inga värde däremot adressen till någon minnesutrymme där instansen befinner sig. exempel: String str = hej ; //str är en referens variabel som pekar på en instans av String. men int tal = 2; // tal är en variabel som har värdet 2. En referens kan endast referera (peka) till en instans åt gången alltså inte mer än en instans. En instans kan refereras (pekas) av många referenser (pekare). 18 3

Följande kan alltså aldrig hända refvar Ett objekt Ett annat Xobjekt 19 klass { Programkodens uppbyggnad variabel1 (klassvariabler) variabel2 (instansvariabler) Flera instansvariabler eller klassvariabler kan deklareras här metode1 { deklaration av lokala variabler... metode2 { deklaration av lokala variabler... Flera instansmetoder, klassmetoder och konstruktorer kan deklareras här Variabler En variabel kan vara någon av följande: Klassvariabel, initieras automatiskt Instansvariabel, initieras automatiskt Lokalvariabel, måste initieras i koden Kännetecken för variabler Kännetecken för en klassvariabel är: 1. deklareras med nyckelordet static 2. deklareras alltid utanför alla metoder men inom klassen Kännetecken för en instansvariabel är: 2. deklareras alltid utanför alla metoder men inom klassen Kännetecken för en lokalvariabel är: 1. deklareras INTE nyckelordet static 2. deklareras alltid inom en metod eller som formell parameter 21 22 Variabler instansvariabler klassvariabler lokala variabler deklareras 1.utanför metoder 2. utan static 1.utanför metoder 2.med static 1.inuti en metod 2.utan static Metoder En metod kan antingen vara en Klassmetod Instansmetod Konstruktor 23 24 4

Kännetecken för metoder Kännetecken för en klassmetod är att: 1. deklareras med nyckelordet static 2. har en returtyp Kännetecken för en instansmetod är att: 2. har en returtyp Kännetecken för en konstruktor är att: 2. har ingen returtyp och har samma namn som klassen. 25 Metod Klassmetod Instansmetod Konstruktor deklareras med static med returtyp utan static med returtyp utan static utan returtyp samma namn som klassen 26 Klassmetoder Normalt anropas alltid en metod via ett objekt (en instans av klassen). Color röd = new Color(255,0,0); Color mörkröd = röd.darker(); Om en metod deklareras med static kan den anropas direkt från klassen - utan att man behöver skapa något objekt. double x = Math.sqrt(17); En klassmetod kan använda sig av klassvariabler men inte instansvariabler. 27 0 Static när och varför? BMW 0 nokia P-HUS 0 PC för 5000 0 limpa 28 Static när och varför? BMW nokia P-HUS PC för 5000 limpa Filläsning Scanner sc=new Scanner(newFile( valutor.txt )); String line = null; while(sc.hasnextline()){ line = sc.nextline(); Stystem.out.println(line ); 29 30 5