Föreläsning 4 Klasser Och Objekt.

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Klasser och objekt.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Metoder i java Det finns två typer av metoder i java
Föreläsning 4 Python: mera om funktioner och parametrar
Arv.
Inkapsling.
Polymorfism.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
i olika programmeringsspråk
Objektorienterad programmering i Java
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Programmering i C# 3. Klasser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Klasser och objekt Klasser, objekt och instansvariabler
Sid 41 Fordon int antalhjul; int vikt;
int res2=Math.max(tal1,tal2);
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
Arv.
Programmeringsteknik för Media1 & K1
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 10 Stränghantering.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Objektorienterad programmering i Java
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
OOP - teori1 OOP del II– Föreläsning 5 vecka 6. OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
OOP&M - teori1 OOP&M del II– Föreläsning 5 vecka 50 OBJEKT Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle Book String.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Presentationens avskrift:

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 klass-deklaration Klassens innehåll ramas in med klammrar { } I klassen finns medlemmar Fält Metoder Innehåller även eventuellt arv och åtkomstmodifierare

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. Punkt - xkord : int - ykord : int + setx(x : int) + sety(y : int) + print() : void UML

En klass kan aldrig deklareras som privat (private). 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)

Fält – Deklarera Åtkomstmodifierare Fälttyp Fältnamn private int xkord; Fältnamn Fälttyp Åtkomstmodifierare Exempel: private String namn; private int antalSidor; private int xkord; private double langd; private Button ok; private Person p1; private Punkt start; Fält kan vara primitiva typer eller objekt 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 Åtkomstmodifierare Returtyp Metodnamn Parametrar public void setX(int x) Parametrar Metodnamn Åtkomstmodifierare Returtyp Kodsatser inom matchande klamrar En metod är åtkomlig i hela den egna klassen. Dvs den kan anropas från alla andra metoder i klassen

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 Eller Punkt p1 = new Punkt(); objref p1 Eller p1 : Punkt xkord = 0 ykord = 0 + setX(int) : void + setY(int) : void + print() : void Punkt p1; p1 = new Punkt(); new returnerar en referens som lagras i p1 p1 är av typen Punkt 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); Punkt - xkord : int - ykord : int + setx(x : int) + sety(y : int) + print() : void PunktTest p1 : Punkt main(String[]): void setX(100) Använder 1..* 1..1

Försök om möjligt att använda så lokala variabler som möjligt. 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: } public void metod2() { // tal1 finns tillgänglig här System.out.println(tal1); // men inte tal2 } } Försök om möjligt att använda så lokala variabler som möjligt. 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 objekt-referenser 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! }

Å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)

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