Datum
-klassen.
Det är vanligt att konstruktorerna placeras direkt efter instansvariablerna.
public Datum(int a, int m, int d) { ar = a; manad = m; dag = d; }Byt ut dessa rader i exempel 3:
Datum date; // Deklarera ett Datum date = new Datum(); // Skapa ett Datum-objekt date.setAr(1999); date.setManad(12); date.setDag(24);mot ett anrop av nya konstruktorn i stil med
Datum date = new Datum(/* Komplettera själv */);Tycker du att den nya konstruktorn är användbar?
Notera att konstruktorer inte skrivs med returtyp.
Förklaringen till att det (väl) inte går är att java inte hittar en konstruktor Datum() alls. Så länge en klass inte specificerat en egen konstruktor, tillhandahåller java en konstruktor utan parametrar. Men när man väl specificerat en konstruktor, så måste man även specifiera en parameterlös konstruktor, ifall man vill ha en sådan. (Anm. Kan du tänka dig fall när man inte vill ha en parameterlös konstruktor?)
Uppgift: Specificera en parameterlös konstruktor! (Du kan välja att sätta vilket datum du vill här.) Kontrollera att alla huvudprogram åter fungerar.