Objektorienterad utveckling Lektion 2 Objekt, överlagring, överskuggning, klasshierarkier och dynamisk bindning KTH Peter Mozelius.

Slides:



Advertisements
Liknande presentationer
Next previous Björn Eiderbäck NADA, KTH Innehåll Klassdiagram i mer detalj Visibility och modifierare (vilka.
Advertisements

Repetition av språket Java
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.
Stefan Möller OOP F16:1 OOP Objekt-orienterad programmering Föreläsning 16 Grafiska användargränssnitt, GUI Ytor Komponenter Layout-managers Lyssnare.
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Objektorienterad utveckling
Klassarv och inkapsling
Repetition av objektorientering
Metoder i java Det finns två typer av metoder i java
Övning5 Så här ska man tänka när man löser uppgift 1 på tentan lite grafik, så här söker man genom en lista så här läser man från en fil i java lösa uppgift.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Att programmera i språket Java
1 ITK:P1 Föreläsning 4 Grafiska gränssnitt och händelsehantering DSV Peter Mozelius.
Föreläsning 8 Appletprogram/fristående grafiska program Rita linjer, rektanglar mm Skriva text Byta färg Appletprogram html.
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
Exception Handling Kapitel 9. Agenda Exceptions try, throw and catch Skapa en egen exception-klass Multipla throw / catch Slänga vidare en exception Olika.
Av eleverna i 7m2 och deras lärare samt en uppgift på slutet...
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Variabler: Datatyp - grundläggande : int, double, char, boolean eller
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Klasser och objekt Klasser, objekt och instansvariabler
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.
Next previous Föreläsning ii - Mer om Java bla this och konstruktorer Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe.
Objektorienterad Modellering Programmering och Analys
Programmeringsteknik för Media1 & K1
ITK:P1 Lektion 4 Att implementera en spelidé i Java DSV Peter Mozelius.
1 MSPEL Lektion 2 DSV Peter Mozelius Spel i Java applets.
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 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 ITK:P1 Föreläsning 8 Multimedia för spelkonstruktion DSV Peter Mozelius.
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 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.
TILLÄMPAD DATALOGI (TILDA) Övning 3
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.
1. Ett problem/uppgift.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
ORDET AREA BETYDER STORLEKEN AV ETT OMRÅDE
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Objektorienterad programmering i Java
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
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.
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.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
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 =
TILLÄMPAD DATALOGI (TILDA) Övning 2
TILLÄMPAD DATALOGI (TILDA) Övning 2
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 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Arv, abstrakta klasser och gränssnitt
Presentationens avskrift:

Objektorienterad utveckling Lektion 2 Objekt, överlagring, överskuggning, klasshierarkier och dynamisk bindning KTH Peter Mozelius

Lektion 2a class Hello { private String greeting = "Hello "; public Hello(){ greeting = greeting + "World!"; }//defaultkonstruktor public Hello(String place){ greeting = greeting + place; }//konstruktor som tar argument

Lektion 2a public String sayHello(){ return greeting; }//sayHello }//Hello

Lektion 2a public class Lektion2a { public static void main(String[] args){ //En hälsning med valfri plats Hello hello1 = new Hello("Kista"); String message = hello1.sayHello() + "!"; System.out.println(message);

Lektion 2a //En hälsning med defaultkonstruktorn Hello hello2 = new Hello(); System.out.println( hello2.sayHello()); }//main }//Lektion2a

Lektion 2b Några viktiga modifierare: –public –protected –private –final –static –abstract

Lektion 2b Några viktiga begrepp: –Klassvariabel –Instansvariabel –Lokal variabel –Åtkomstmetod PAUS 15 min

Lektion 2c public abstract class Figur { private String färg; public Figur(){ färg = "svart"; }//defaultkonstruktor public Figur(String färg) { this.färg = färg; }//konstruktor som tar argument

Lektion 2c public String visaFärg() { return färg; } public abstract double visaArea(); }//Figur

Lektion 2c public class Rektangel extends Figur { private double bredd, höjd; public Rektangel(double bredd, double höjd) { super(); this.bredd = bredd; this.höjd = höjd; }//konstruktor som tar två argument

Lektion 2c public Rektangel(double bredd, double höjd, String färg) { super(färg); this.bredd = bredd; this.höjd = höjd; }//konstruktor som tar tre argument public double visaArea() { return bredd * höjd; }//överskuggning av basklassens visaArea }//Rektangel

Lektion 2c public class Triangel extends Figur { private double bas, höjd; public Triangel(double bas, double höjd) { super(); this.bas = bas; this.höjd = höjd; }//konstruktor som tar två argument

Lektion 2c public Triangel(double bas, double höjd, String färg) { super(färg); this.bas = bas; this.höjd = höjd; }//konstruktor som tar tre argument public double visaArea() { return bas * höjd / 2; }//visaArea }//Triangel

Lektion 2c public class Cirkel extends Figur { static final float PI = f; private double radie; public Cirkel(double radie) { super(); this.radie = radie; }//konstruktor som tar ett argument

Lektion 2c public Cirkel(double radie, String färg) { super(färg); this.radie = radie; }//konstruktor som tar två argument public double visaArea() { return PI * radie * radie; }//visaArea }//Cirkel

Lektion 2c public class Kvadrat extends Rektangel { private int xKoordinat; private int yKoordinat; public Kvadrat(double sida,int x,int y) { super(sida, sida); xKoordinat = x; yKoordinat = y; }//konstruktor som tar tre argument

Lektion 2c public Kvadrat(double sida, String färg, int x, int y) { super(sida, sida, färg); xKoordinat = x; yKoordinat = y; } public int visaX(){ return xKoordinat; }

Lektion 2c public int visaY(){ return yKoordinat; } }//Lektion2c PAUS 15 min

Lektion 2c public class Lektion2c { public static void main(String[] args) { //Vi testkör cirkelklassen Cirkel cirkel = new Cirkel(4, "gul"); System.out.println("Cirkelns färg är:" + cirkel.visaFärg()); System.out.println("Cirkelns area är:" + cirkel.visaArea()+" ae\n");

Lektion 2c //Vi testkör Rektangelklassen Rektangel rekt = new Rektangel(4, 4); System.out.println("Rektangelns färg är:" + rekt.visaFärg()); System.out.println("Rektangelns area är:" + rekt.visaArea()+" ae\n");

Lektion 2c //Vi testkör Triangelklassen Triangel tri = new Triangel(4, 1,"röd"); System.out.println("Triangelns färg är: " + tri.visaFärg()); System.out.println("Triangelns area är: " + tri.visaArea()+" ae\n"); }//main }//lektion2c

Lektion 2d import java.awt.*; public class Lektion2d extends Frame { public Lektion2d(){ //sätt titel genom anrop till basklassen super("Lektion2d, ett första fönster"); //sätt fönstrets storlek this.setSize(300, 200);

Lektion 2d //sätt färg på fönstret this.setBackground(new Color(200, 200, 0)); //gör fönstret synligt this.setVisible(true); }//konstruktor public static void main(String[] args) { Lektion2d fönster = new Lektion2d(); } }//Lektion2d