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

Relevanta dokument
Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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

Lösningsförslag övning 2.

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

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

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

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

Laboration 1 - Grunderna för OOP i Java

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

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

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

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

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

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

Objektorienterad Programmering DAT043

Java, klasser, objekt (Skansholm: Kapitel 2)

Objekt och referenser

Föreläsning 13 Datalogi 1 DA2001

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

DAT043 - Föreläsning 7

Enkla variabler kontra referensvariabel

Objekt och klasser - Introduktion

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

Lösningar för tenta 3 DAT043,

Sammanfattning och repetition utgående från typiska tentamensuppgifter

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

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

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

Klasser och objekt. Henrik Johansson. August 20, 2008

Föreläsning 5-6 Innehåll

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

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

Mer om klasser och objekt

JAVAUTVECKLING LEKTION 11

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

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

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

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

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

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

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

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

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

2 b) Bodega bodegan = new Bodega(); double moms = 0.235; String namn = "Vargtass"; System.out.println(namn + " " + moms + bodegan.ändra(moms, namn); S

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

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

DD2310. Javaprogrammering för Pythonprogrammerare. Johan Boye

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

Del A (obligatorisk för alla)

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

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

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

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

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 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

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

Objektorienterad programmering

1 Egna klasser. 1.1 En punkt-klass

Objektorienterad Programmering (TDDC77)

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 )

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

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

Sammanfattning och repetition utgående från typiska tentamensuppgifter

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

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

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

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

Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad 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

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

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.

Del A (obligatorisk för alla)

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

Objektorienterad programmering i Java

Objektorientering: Lagring och livstid

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Lösningar för tenta 2 DAT043,

Idag ska vi gå igenom. Programmeringsteknik för S, 2004 Grupp IV. Vad är en klass? Klasser och instanser

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

Objektorientering: Lagring, räckvidd och livstid

Objektorienterad programmering Föreläsning 5

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

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

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

Det är principer och idéer som är viktiga. Skriv så att du övertygar examinatorn om att du har förstått dessa även om detaljer kan vara felaktiga.

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

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

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

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

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner

DD1342 Programkonstruktion för F1,

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

Objektorienterad Programkonstruktion, DD1346 FACIT. Tentamen , kl

Föreläsning 9: Arv och UML

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

Transkript:

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

Array och ArrayList Arrayer och ArrayList är till för att innehålla en massa värde Eftersom alla värde har ett index så passar de bra med slingor. Man ska vara försiktig och inte missbruka arrayer för att hålla samman två värde. 2

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(... 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 ); 3

Instansvariabler och instansmetoder class Person { String name; byte age; String mailaddress; } Deklaration av instansvariabler 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; } Deklaration av konstruktör Deklaration av instansmetoder 4

2.16) Fördela följande till klasser och objekt a) En bok b) Boken Java från grunden c) Min kopia av Java från grunden d) Min hund e) Bilden av min hund medan han biter postmannen f) En bil g) En Chrysler a) b) c) d) e) f) g) 5

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). 6

Följande kan alltså aldrig hända refvar Ett objekt Ett annat Xobjekt 7

kod Minnesbild String str1; str1 = prgi05 ; str1 null String str2; str2 = str1; str2 null prgi05 int tal = 30; int tal2 = tal1; tal 30 tal2 30 8

Programkodens uppbyggnad Deklaration av klass { Deklaration av variabel1 (klassvariabler) Deklaration av variabel2 (instansvariabler) Flera instansvariabler eller klassvariabler kan deklareras här Deklaration av metode1 (){ deklaration av lokala variabler... } Deklaration av metode2 (){ deklaration av lokala variabler... } } Flera instansmetoder, klassmetoder och konstruktorer kan deklareras här 9

Variabler En variabel kan vara någon av följande: Klassvariabel Instansvariabel Lokalvariabel 10

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: 1. deklareras INTE med nyckelordet static 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 11

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 12

Metoder En metod kan antingen vara en Klassmetod Instansmetod Konstruktor 13

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: 1. deklareras INTE med nyckelordet static 2. har en returtyp Kännetecken för en konstruktor är att: 1. deklareras INTE med nyckelordet static 2. har ingen returtyp och har samma namn som klassen. 14

Metod Klassmetod Instansmetod Konstruktor deklareras med static med returtyp utan static med returtyp utan static utan returtyp samma namn som klassen 15

public och private private globala variabler och metoder som man bara kommer åt i samma klass. private double pris; public globala variabler och metoder som man kommer åt även från andra klasser. public void reklam(); En väluppfostrad programmerare deklarerar alla sina instansvariabler som private! 16

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. 17

Static när och varför? nokia PC för 5000 BMW P-HUS limpa 18

Static när och varför? nokia PC för 5000 BMW P-HUS limpa 19

Static när och varför? nokia PC för 5000 BMW P-HUS limpa 20

Static när och varför? 199 nokia 199 PC för 5000 199 BMW P-HUS 199 limpa 21