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