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

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

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

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 5-6 Innehåll

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

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.

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

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

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

Lektion 2. Datateknik A, Java I, 5 poäng

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

LÖSNINGSFÖRSLAG TENTAMEN

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

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

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

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

Föreläsning 13 Innehåll

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

DAT043 - Föreläsning 7

Java, klasser, objekt (Skansholm: Kapitel 2)

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

Klasshierarkier - repetition

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

Konstruktion av klasser med klasser

Lektion 3. Datateknik A, Java I, 5 poäng

Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning:

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

Classes och Interfaces, Objects och References, Initialization

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

Introduktion till arv

JAVA Mer om klasser och objektorientering

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

Klasshierarkier. Klasser kan byggas på redan definierade klasser

OOP Objekt-orienterad programmering

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

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

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

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

5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har

TENTAMEN OOP

Arv innebär att man skapar en ny klass (subklass) utifrån en redan existerande klass (superklass, basklass).

Objektorienterad programmering i Java

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

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

Modeller, Objekt och Klasser

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

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

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

FÖRSLAG TILL LÖSNINGAR FÖR TENTAMEN I INTERNETPROGRAMMERING MED JAVA, 5p för SY , kl

Föreläsning 2, vecka 8: Repetition

Lektion 7. Datateknik A, Java I, 5 poäng

Inledande programmering med C# (1DV402) Tärningarna ska kastas

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

Programmering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT / 42

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

OOP Objekt-orienterad programmering

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

Laboration 1 - Grunderna för OOP i Java

OOP Objekt-orienterad programmering

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Arrayer. results

TUTORIAL: KLASSER & OBJEKT

Objekt och klasser - Introduktion

Objektorienterad Programmering (TDDC77)

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

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

Till skillnad från Pascal/C/C++ finns det inget globalt scope där exempelvis main finns deklarerad utan enbart objekt.

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

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Objekt, Klasser, Paket m. m.

2203$( Föreläsning ii - Mer om Java bla this och konstruktorer. Exempel: lampa

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

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

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

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

Typkonvertering. Java versus C

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

Klasser och objekt. Henrik Johansson. August 20, 2008

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

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

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.

ID1004 Laboration 4, November 2012

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

Föreläsning 3-4 Innehåll

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

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 )

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

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk

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

Kopiering av objekt i Java

Föreläsning 7: Objektorienterad programmering - introduktion

Malmö högskola 2007/2008 Teknik och samhälle

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

Objektorienterad programmering i Java

Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015

Övningar Dag 2 En första klass

Transkript:

Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras Tips! En klass kan ses som en ritning. Den beskriver ett objekts form, men inte dess innehåll. Klassdeklaration En klass börjar med en klassdeklaration Klassens innehåll ramas in med klammrar I klassen finns medlemmar Fält Metoder Innehåller även eventuellt arv och åtkomstmodifierare 1

Exempel På En Klass Skriv en klass som ska representera en geometrisk punkt. Klassen ska innehålla information om punktens x och y koordinat. Det ska finnas möjlighet att sätta nya värden på punktens koordinater samt att skriva ut punkten på skärmen. UML Punkt -xkord: int -ykord: int + setx(x : int) + sety(y : int) + print() : void Klassdeklaration Exempel public class Punkt // Inledande vänsterklammer // Avslutande högerklammer (åtkomstodifierare) class Namn (extends) Vissa modifierare kan uteslutas Notera! En klass kan aldrig deklareras som privat (private). Fält (attribut) Representerar ett objekts information Lagras normalt som private Behöver andra tillgång till fält, skapa publika set- och get-metoder Kan deklareras vart som helst i klassdeklarationen (normalt överst) 2

Fält Deklarera private int xkord; Åtkomstmodifierare Fälttyp Fältnamn Fält kan vara primitiva typer eller objekt Exempel: private String namn; private int antalsidor; private int xkord; private double langd; private Button ok; private Person p1; private Punkt start; Skilj mellan fältvariabler och andra variabler. T.ex lokala variabler som deklareras i en metod. Metoder Beskriver de tjänster som klassen tillhandahåller Innehåller den kod som verkligen utför något Går ej att deklarera metoder utanför en klass Metoder Deklarera public void setx(int x) Åtkomstmodifierare Returtyp Metodnamn Parametrar Kodsatser inom matchande klamrar En metod är åtkomlig i hela den egna klassen. Dvs den kan anropas från alla andra metoder i klassen 3

Objekt Skapas av klassen Är en instans av klassen Kan skapas var som helst i applikationen Kan använda publika metoder och fält Att Skapa Objekt Enda sättet att skapa är med new Punkt p1 = new Punkt(); Eller Punkt p1; p1 = new Punkt(); new returnerar en referens som lagras i p1 p1 är av typen Punkt p1 objref p1 : Punkt xkord = 0 ykord = 0 + setx(int) : void + sety(int) : void + print() : void En variabel av primitiv typ lagrar värdet, en referensvariabel lagrar adressen till objektet. Anropa Metoder Publika metoder kan anropas Anrop görs med punktnotation p1.setx(100); PunktTest p1 : Punkt main(string[]): void 1..1 setx(100) Använder 1..* Punkt -xkord: int -ykord: int + setx(x : int) + sety(y : int) + print() : void 4

Fält Räckvidd Fält på klassnivå finns åtkomlig i hela klassen (metoder) public class Rackvidd private int tal1; public void metod1() // tal1 finns tillgänglig här int tal2 = tal1 + 10: Försök om möjligt att använda så lokala variabler som möjligt. public void metod2() // tal1 finns tillgänglig här System.out.println(tal1); // men inte tal2 Fält i java har en räckvidd som sträcker sig genom hela klassen där den är deklarerad. Fält Initiera Tilldelar fältet ett initialvärde Kan ske vid deklarationen, i konstruktorn eller i annan metod Sker i den ordning fälten skrivs Fält initieras innan konstruktorn körs Finns inget initieringsvärde sätts primitiva fält till 0 och objektreferenser till null Initiering - Exempel public class Initiering // Exempel på initiering av fält private String s1; // får värdet null private String s2 = Hello ; private char ch = s2.charat(0); private int t; // får värdet 0 private final int x = 100; // kan ej förändras private double y = 3.14 * 500; private double z1 = x * y; private double z2 = metod1(); private Person p1 = new Person(); // OBS! Deklarationen av z1 hade inte kunnat stå före // deklarationen av x och y! 5

Åtkomst Fyra olika åtkomstformer finns för fält och metoder public protected private paketåtkomst public (publik åtkomst) Tillgänglig för alla Kan användas inom klassen Kan användas av de som skapat objekt av klassen Metoder är normalt publika protected (skyddad åtkomst) Kan användas inom klassen Kan användas av subklasser (arv) Kan användas av klasser som ligger i samma paket Kan inte användas av de som skapat objekt av klassen Används normalt för fält i klasser som ska ärvas (superklasser) 6

private (privat åtkomst) Kan endast användas inom klassen Kan inte användas av de som skapat objekt av klassen Kan inte användas av subklasser Kan inte användas av klasser som ligger i samma paket Används normalt för fält i klasser (som inte ska ärvas) Paketåtkomst Om ingen åtkomstmodifierare anges erhålls automatiskt paketåtkomst Åtkomlig (public) inom ett paket Ej åtkomlig (private) utanför paketet Bör inte användas Använd protected istället 7