// Kompozycja z propagacją operacji import java.util.*; public class Kompozycja { public static void main(String[] args) { Samochod samochod = new Samochod("Porshe",2000,70); System.out.println(samochod); System.exit(0); } } class Samochod { private String marka; private Silnik silnik; private Kolo[] kola; private class Silnik { // wewnętrzna klasa Silnik private int pojemnosc; public Silnik(int pojem) { pojemnosc = pojem; } public String toString() { return "" + pojemnosc; } } private class Kolo { // wewnętrzna klasa Kolo private int srednica; public Kolo(int sred) { srednica = sred; } public String toString() { return "" + srednica; } } public Samochod(String mrk, int pojem, int sred) { marka = mrk; silnik = new Silnik(pojem); kola = new Kolo[4]; for (int i = 0; i < 4; i++) kola[i] = new Kolo(sred); } public String toString() { String str = "Samochod " + marka + " o pojemnosci " + silnik + "\n"; for (int i = 0; i < 4; i++) str += "kolo nr " + (i+1) + " o srednicy " + kola[i] + " cm\n"; return str; } }