Advertisement
timdebuyst

BerekenMassa.java

Apr 4th, 2019
386
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.78 KB | None | 0 0
  1. package hfdst6;
  2.  
  3. import java.util.*;
  4.  
  5. class VrachtwagenException extends Exception {
  6.    
  7. }
  8.  
  9. abstract class Massa {
  10.     protected double massa;
  11.     protected String naam;
  12.  
  13.     public Massa(String naam,double massa) {
  14.         this.naam = naam;
  15.         this.massa = massa;
  16.     }
  17.  
  18.     abstract double bepaalMassa();
  19. }
  20.  
  21. class Item extends Massa {
  22.     public Item(String naam, double massa) {
  23.         super(naam, massa);
  24.     }
  25.  
  26.     public double bepaalMassa() {
  27.         return massa;
  28.     }
  29.     public String toString() {
  30.         return "<"+naam+":"+massa+">";
  31.     }
  32. }
  33.  
  34. class Doos extends Massa {
  35.     protected ArrayList<Massa> items_boxes = new ArrayList<>(); // Item -> Massa
  36.  
  37.     public Doos(String naam, double massa) {
  38.         super(naam, massa);
  39.     }
  40.  
  41.     public double bepaalMassa() {
  42.         double m = this.massa;
  43.         for (Massa i : items_boxes) { // Item -> Massa
  44.             m += i.bepaalMassa();
  45.         }
  46.         return m;
  47.     }
  48.  
  49.     public void voegToe(Massa item_box) throws VrachtwagenException{ // Item -> Massa
  50.         if(item_box instanceof Vrachtwagen) { // instanceof is een noodkreet die je beter zo min mogelijk gebruikt
  51.             System.out.println("You cannot put a truck inside a box!");
  52.             throw new VrachtwagenException();
  53.         }
  54.         items_boxes.add(item_box);
  55.     }
  56.     public String toString(){
  57.         return "["+naam+" : "+items_boxes+"]";
  58.     }
  59. }
  60.  
  61. class Vrachtwagen extends Doos{
  62.  
  63.     public Vrachtwagen(String naam, double massa){
  64.         super(naam, massa);
  65.     }
  66.    
  67.     @Override
  68.     public void voegToe(Massa item_box) throws VrachtwagenException {
  69.         if(item_box instanceof Vrachtwagen) {
  70.             System.out.println("You cannot put a truck inside a truck!");
  71.             throw new VrachtwagenException();
  72.         } else {
  73.             items_boxes.add(item_box);
  74.         }
  75.     }
  76. }
  77.  
  78. public class BerekenMassa {
  79.     public static void main(String[] args) throws VrachtwagenException {
  80.         Doos a = new Doos("a", 125.0);
  81.         Doos b = new Doos("b", 100.0);
  82.         a.voegToe(new Item("a1", 20));
  83.         a.voegToe(new Item("a2", 25));
  84.         b.voegToe(new Item("b1", 30));
  85.         b.voegToe(new Item("b2", 35));
  86.         b.voegToe(new Item("b3", 40));
  87.         System.out.println(a);
  88.         System.out.println(a.bepaalMassa());
  89.         System.out.println(b);
  90.         System.out.println(b.bepaalMassa());
  91.         Doos c = new Doos("c", 150.0);
  92.         c.voegToe(a);
  93.         c.voegToe(b);
  94.         System.out.println(c);
  95.         System.out.println(c.bepaalMassa());
  96.         Vrachtwagen v = new Vrachtwagen("Truck", 2500);
  97.         v.voegToe(a);
  98.         v.voegToe(b);
  99.         System.out.println(v);
  100.         System.out.println(v.bepaalMassa());
  101.         /*
  102.         System.out.println("Testen of men een truck bij een doos kan toevoegen.");
  103.         c.voegToe(v);
  104.         System.out.println(c);
  105.         System.out.println(c.bepaalMassa());
  106.         */
  107.         /*
  108.         System.out.println("Testen of men een truck bij een andere truck kan toevoegen.");
  109.         Vrachtwagen w = new Vrachtwagen("Big Truck", 3000);
  110.         w.voegToe(v);
  111.         System.out.println(w);
  112.         System.out.println(w.bepaalMassa());
  113.         */
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement