Skip to content

Tavaroita ja laatikoita

mluukkai edited this page Nov 21, 2013 · 1 revision
public interface Talletettava {
    double paino();
}

public class CDLevy implements Talletettava {
 
    private String artisti;
    private String nimi;
    private int vuosiluku;
 
    public CDLevy(String artisti, String nimi, int vuosiluku) {
        this.artisti = artisti;
        this.nimi = nimi;
        this.vuosiluku = vuosiluku;
    }
 
    public double paino() {
        return 0.1;
    }
 
    public String toString() {
        return this.artisti+": "+this.nimi+" ("+this.vuosiluku+")";
    }
 
}
public class Kirja implements Talletettava {
 
    private double paino;
    private String kirjoittaja;
    private String nimi;
 
    public Kirja(String kirjoittaja, String nimi, double paino) {
        this.paino = paino;
        this.kirjoittaja = kirjoittaja;
        this.nimi = nimi;
    }
 
    public double paino() {
        return this.paino;
    }
 
    public String toString() {
        return this.kirjoittaja+": "+this.nimi;
    }
 
}

import java.util.ArrayList;
 
public class Laatikko implements Talletettava {
 
    private ArrayList<Talletettava> esineet = new ArrayList<Talletettava>();
    private double maxPaino;
 
    public Laatikko(double paino) {
        this.maxPaino = paino;
    }
 
    public double paino() {
        double paino = 0;
        for (Talletettava t : this.esineet) {
            paino += t.paino();
        }
        return paino;
    }
 
    public void lisaa(Talletettava esine) {
        if (this.paino() + esine.paino() <= this.maxPaino) {
            this.esineet.add(esine);
        }
    }
 
    public String toString() {
        return "Laatikko: " + this.esineet.size() + " esinettä, paino yhteensä " + this.paino() + " kiloa";
    }
}