1 / 18

OPLOSSINGEN H9

OPLOSSINGEN H9. Oefening 1 H9. Definieer een superklasse Rekening: Attributen: rekeningNr (long), saldo (double) en houder (String) Methoden: constructor(met 3 arg), accessors en mutators, storten, afhalen en overschrijven. Definieer nu de subklasse ZichtRekening:

aquila
Download Presentation

OPLOSSINGEN H9

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OPLOSSINGEN H9

  2. Oefening 1 H9. • Definieer een superklasse Rekening: • Attributen: rekeningNr (long), saldo (double) en houder (String) • Methoden: constructor(met 3 arg), accessors en mutators, storten, afhalen en overschrijven. • Definieer nu de subklasse ZichtRekening: • Extra attributen: maxKrediet (double). • Extra methoden: constructor, get en set MaxKrediet. • Override methode: setSaldo. • En de subklasse SpaarRekening: • Extra attributen: aangroeiIntrest (double) : voor alle spaarRekeningen dezelfde waarde!. • Extra methoden: constructor, get en set AangroeiIntrest. • Override methode: setSaldo.

  3. class Rekening { private long rekeningNr; private double saldo; private String houder; Rekening(long rek, double sal, String houd) { setRekeningNr(rek); setSaldo(sal); setHouder(houd); } private void setRekeningNr( long reknr) { if ( reknr/100 % 97 != reknr %100 ) throw new IllegalArgumentException("Ongeldig rekeningnr"); else rekeningNr = reknr; }

  4. public long getRekeningNr() { return rekeningNr; } public void setSaldo(double sal) { saldo = sal; } public double getSaldo() { return saldo; } public void setHouder(String houd) { if (houd==null||houd.length()==0) throw new IllegalArgumentException("Houder ongeldig"); else houder = houd; } public double getHouder() { return saldo; }

  5. public void storten( double bedrag) { if (bedrag < 0.0) throw new IllegalArgumentException("Bedrag negatief"); else saldo+=bedrag; } public void afhalen(double bedrag) { if (bedrag < 0.0) throw new IllegalArgumentException("Bedrag negatief"); else setSaldo(getSaldo()-bedrag); }

  6. public void overschrijven(Rekening naarRek, double bedrag) { if ( !(naarRek instanceof Rekening) ) throw new IllegalArgumentException ("NaarRekening geen Rekening"); else { afhalen(bedrag); naarRek.storten(bedrag); } } }

  7. class ZichtRekening extends Rekening { private double maxKrediet; public ZichtRekening(double max, long rek, double sal, String houd) { super(rek, sal, houd); setMaxKrediet(max); } public void setMaxKrediet(double max) { if (max >0.0) throw new IllegalArgumentException("MaxKrediet positief"); else maxKrediet = max; } public double getMaxKrediet() { return maxKrediet;}

  8. public void setSaldo(double sal) { if (sal < maxKrediet) throw new IllegalArgumentException("Maxkrediet bereikt"); else super.setSaldo(sal); } } class SpaarRekening extends Rekening { private static double aangroeiIntrest; public SpaarRekening(long rek, double sal, String houd) { super(rek, sal, houd); } public static void setAangroeiIntrest(double aangroei) { if (aangroei < 0.0) throw new IllegalArgumentException("Intrest negatief"); else aangroeiIntrest = aangroei; }

  9. public static double getAangroeiIntrest() { return aangroeiIntrest; } public void setSaldo(double sal) { if (sal < 0) throw new IllegalArgumentException ("Saldo kan niet negatief worden"); else super.setSaldo(sal); } }

  10. Oefening 2 H9. • Definieer een abstracte klasse Voertuig: • Attributen: snelheid (int), personen (int), brandstof (char), verplaatsingswijze (String). • Methoden: accessors en mutators. • Definieer een concrete subklasse Auto: • Extra attributen: nummerplaat (String), daktype (char). • Methoden: constructors, accessors en mutators. • En nog een concrete subklasse Auto: • Attributen: loydsnummer (int), naam (String), diepgang (int). • Methoden: constructors, accessors en mutators.

  11. abstract class Voertuig { private int snelheid; private int personen; private char brandstof; private char verplaatsingswijze; public void setSnelheid(int s) { snelheid = s> 0? s : 0; } public int getSnelheid() { return snelheid; } public void setPersonen(int p) { personen = p> 0? p : 0; } public int getPersonen() { return personen; } public void setBrandstof(char b) { brandstof = b=='D'||b=='B'||b=='L'||b=='K' ? b : 'D';} public char getBrandstof() { return brandstof; } public void setVerplaatsingswijze(char v) {verplaatsingswijze = v=='V'||v=='R'||v=='F'||v=='S'|| v=='v' ? v : 'R';} public char getVerplaatsingswijze() { return verplaatsingswijze; } public Voertuig(int s, int p, char b, char v) { setSnelheid(s); setPersonen(p); setBrandstof(b); setVerplaatsingswijze(v); } }

  12. class Auto extends Voertuig { private String nrplaat; private char daktype; public void setNrplaat(String nr) { nrplaat = nr!=null ? nr : "ZZZ000"; } public String getNrplaat() { return nrplaat; } public void setDaktype( char d) { daktype = d=='G'||d=='H'||d=='S' ? d :'G';} public char getDaktype() { return daktype; } public Auto(String nr, char d, int s, int p, char b, char v) { super(s, p, b, v); setNrplaat(nr); setDaktype(d); } }

  13. class Schip extends Voertuig { private int loydsnr; private String naam; private int diepgang; public void setLoydsnr(int nr) { loydsnr = nr; } public int getLoydsnr() { return loydsnr; } public void setNaam(String n) { naam = n; } public String getNaam() { return naam; } public void setDiepgang(int d) { diepgang = d> 0? d : 0;} public int getDiepgang() { return diepgang; } public Schip(int nr, String n, int d, int s, int p, char b, char v) { super(s, p, b, v); setLoydsnr(nr); setNaam(n); setDiepgang(d); } }

  14. Oefening 3 H9. • Definieer de klasse Restaurant: • Attributen: aantalSter (int),… • Methoden: accessor(s) en mutator(s), … • Herschrijf de klasse Voertuig van Oefening 2 als een interface. • Definieer Restauratiewagen als een subklasse van Restaurant, die eveneens de interface Voertuig implementeert. • Extra attributen: zelf invullen. • Extra methoden: zelf invullen.

  15. class Restaurant { private int aantalSter; public void setAantalSter(int a) { aantalSter = a>0 ? a : 0; } public int getAantalSter() { return aantalSter; } public Restaurant(int n) { setAantalSter(n); } } interface Voertuig { public void setSnelheid(int s); public int getSnelheid(); public void setPersonen(int p); public int getPersonen(); public void setBrandstof(char b); public char getBrandstof(); public void setVerplaatsingswijze(char v); public char getVerplaatsingswijze(); }

  16. class VoertuigClass implements Voertuig { private int snelheid; private int personen; private char brandstof; private char verplaatsingswijze; public void setSnelheid(int s) { snelheid = s> 0? s : 0; } public int getSnelheid() { return snelheid; } public void setPersonen(int p) { personen = p> 0? p : 0; } public int getPersonen() { return personen; } public void setBrandstof(char b) { brandstof = b=='D'||b=='B'||b=='L'||b=='K' ? b : 'D';} public char getBrandstof() { return brandstof; } public void setVerplaatsingswijze(char v) {verplaatsingswijze = v=='V'||v=='R'||v=='F'||v=='S'|| v=='v' ? v : 'R';} public char getVerplaatsingswijze() { return verplaatsingswijze; }

  17. public VoertuigClass(int s, int p, char b, char v) { setSnelheid(s); setPersonen(p); setBrandstof(b); setVerplaatsingswijze(v); } }

  18. class RestauratieWagen extends Restaurant implements Voertuig { //hier nog specifieke attributen ... private VoertuigClass voertuig; public void setSnelheid( int s) { voertuig.setSnelheid(s); } public int getSnelheid() { return voertuig.getSnelheid(); } public void setPersonen(int p) { voertuig.setPersonen(p); } public int getPersonen() { return voertuig.getPersonen(); } public void setBrandstof(char b) { voertuig.setBrandstof(b); } public char getBrandstof() { return voertuig.getBrandstof(); } public void setVerplaatsingswijze(char v) {voertuig.setVerplaatsingswijze(v); } public char getVerplaatsingswijze() { return voertuig.getVerplaatsingswijze(); } public RestauratieWagen(int n, int s, int p, char b, char v) { super(n); voertuig = new VoertuigClass(s, p, b, v); } }

More Related