Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

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.
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.
Programmeringsteknik
Programmeringsteknik Föreläsning 6 Skolan för Datavetenskap och kommunikation.
Klassarv och inkapsling
Föreläsning 4 Python: mera om funktioner och parametrar
Arv.
Polymorfism.
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
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
Att programmera i språket Java
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
TNSL04 – IT grundkurs. VT2008. Föreläsning nr 3, torsdag 7 feb. kl Del 1. Klasser, objekt, metoder, konstruktorer, samlingar och tillstånd. Hur.
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
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.
Föreläsning 10 Minnesbilder. Minnesbilder steg 1 char ch; int[] vek; Bil bilen; Bil int[] char ch vek bilen.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Programmeringsteknik för Media1 & K1
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
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.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
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.
OOP F14:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 14 Repetition Tips inför inlämningsuppgift 2.
Föreläsning 4 Klasser Och Objekt.
1. Ett problem/uppgift.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen.
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.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
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.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
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.
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.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Presentationens avskrift:

Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder

Repetition Ett objekt har instansvariabler och metoder. En klass är en mall som beskriver hur objekten ska se ut. En konstruktor kan användas för att ge objektets instansvariabler värden när det skapas.

De variabler som används för objekt är referenser, dvs de håller reda på var i minnet objektet lagrats. När man vill göra något med ett objekt måste man gå via referensen. Referenser Bil

Tilldelning - primitiva datatyper Vid tilldelning kopieras värdet från högerledet och lagras i variabeln i vänsterledet: Efter satsen x = y; xy xy int

Tilldelning - referenser För referenser till objekt är det istället minnesadressen till objektet som kopieras: nybil favorit favorit = nybil; Bil

Referenser till objekt Ett objekt kan ha flera referenser (med olika namn) till sig. När ett objekt inte har någon referens till sig så kan programmet inte längre nå instansen. Då kastas den automatiskt bort av skräpsamlaren.

Parametrar När en anropsparameter skickas med vid ett metodanrop kopieras dess värde till den formella parametern. Kan ett metodanrop ändra på anropsparametern? –Om den är av primitiv datatyp: VÄRDET KAN INTE ÄNDRAS –Om den är en referens till ett objekt: VÄRDEN INUTI OBJEKTET KAN ÄNDRAS –Om den är en referens till en sträng: STRÄNGEN KAN INTE ÄNDRAS

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

Klassvariabler Normalt har varje objekt sina egna data. En variabel kan deklareras med static static int antalbilar; Då kommer dess minnesutrymme att vara gemensamt för alla objekt ur klassen - om värdet ändras för ett objekt ändras det alltså för alla. Dessa variabler brukar kallas klassvariabler.

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 klassvariabler men inte instansvariabler.

class BerrasBegBilar2{ public static void main(String[] args) { Bil fiesta = new Bil("röd", 33000); Bil citroen = new Bil("gul", 20000); välkommen(); fiesta.reklam(); citroen.reklam(); citroen.sättPris(citroen.specialpris(10)); System.out.print("Extraerbjudande: den " + citroen.färg() + "a bilen"); System.out.println(" kostar endast " + citroen.pris() + " kronor idag!!!!!"); } // Metoden main() public static void välkommen() { System.out.println("********** Vällkommen till Berra ***********"); System.out.println("Just nu har jag " + Bil.antalbilar + " bilar inne!"); } // Metoden välkommen() } // Huvudklassen BerrasBegBilar2 class Bil{ private String färg; private double pris; public static int antalbilar = 0; public Bil(String nyFärg, double nyPris) { färg = nyFärg; pris = nyPris; antalbilar++; } // Konstruktorn Bil public String färg() { return färg; } public double pris() { return pris; } public void sättPris(double nyPris) { pris = nyPris; } public String toString() { return "Färg: " + färg + " Pris: " + pris; } public void reklam() { System.out.print("En läckert " + färg + " bil"); System.out.println(" som kostar " + pris); } // reklam public double specialpris(int rabattprocent) { double rabattfaktor = 1.0-rabattprocent/100.0; return pris*rabattfaktor; } // Metoden specialpris() } // class Bil