Skip to main content

Java Übung – Entwickle eine Mahnwesen

In dieser Java Übung geht es um Mahnungen.
Ja, Mahnungen zu Rechnungen.

Und zwar möchte ich, dass du ein kleines Programm anlegst.

Was genau soll passieren?
Du legst zwei Konstruktoren an.

Der erste Konstruktor soll zwei Parameter entgegen nehmen.
Die Mahnstufe und die Mahngebühr.

Dies sind gleichzeitig die Instanzvariablen der Klasse.

Der zweite Konstruktor nimmt ein Objekt entgegen.
Im Rumpf erhöht sich die Mahnstufe um eins und die Mahngebühr um 5.

Außerdem soll eine Methode die entsprechende Konsolenausgabe zur Mahnstufe und Mahngebühr erzeugen.
Und zwar soll diese Methode bei jedem neu erstellten Objekt ausgeführt werden.

In der main Methode erstellst du ein Objekt und übergibst diesen die Mahnstufe eins und die Mahngebühr 5.
Das zweite und dritte Objekt wird mit dem zweiten Konstruktor (Objekt-Konstruktor) erzeugt.

Lass dir alle drei Konsolenausgaben anzeigen.

Ich wünsche dir viel Spaß beim Lösen dieser Java Übung.


Los geht’s

Als erstes die Klasse, die Instanzvariablen und der erste Konstruktor.

public class Mahnung {
 double mahnGebuehr; 
 int mahnStufe;
 
 public Mahnung (){
 this.mahnStufe=1; //Zuweisung der Mahnstufe
 this.mahnGebuehr=5;//Zuweisung der Mahngebühr
 } 
}

Dann legst du die Instanzmethode, zu den Infos, an.

public class Mahnung {
 double mahnGebuehr; 
 int mahnStufe;
 
 public Mahnung (){
 this.mahnStufe=1; //Zuweisung der Mahnstufe
 this.mahnGebuehr=5;//Zuweisung der Mahngebührvoid gibInfo(){
 System.out.println("Mahnstufe: "+mahnStufe+" , Mahngebühr: "+mahnGebuehr+" Euro"); 
 }
}

Da diese Methode bei jeder Objekterschaffung angeschmissen werden soll…
Macht es Sinn diese in den Konstruktor einzupflegen.

public class Mahnung {
 double mahnGebuehr; 
 int mahnStufe;
 
 public Mahnung (){
 this.mahnStufe=1; 
 this.mahnGebuehr=5;
gibInfo(); //Methodenaufrufvoid gibInfo(){ 
System.out.println("Mahnstufe: "+mahnStufe+" , Mahngebühr: "+mahnGebuehr+" Euro"); 
} 
}


Es wird so langsam Zeit für das erste Objekt

Lass uns den Programmstart testen.

public class Mahnung {
 double mahnGebuehr;
 int mahnStufe;
 
 void gibInfo(){
 System.out.println("Mahnstufe: "+mahnStufe+" , Mahngebühr: "+mahnGebuehr+" Euro"); 
 }
 
 public Mahnung (){
 this.mahnStufe=1; //Zuweisung der Mahnstufe
 this.mahnGebuehr=5;//Zuweisung der Mahngebühr
 gibInfo();
 }
 
 
 public static void main(String[] args) {
 Mahnung ersteMahnung = new Mahnung(); //erstes Objekt
 
 }
}

In der main Methode erschaffst du das erste Objekt und übergibst diesem die angebenden Werte eins und fünf.

Oder du machst es wie ich.
Du weist im default-Konstruktor Standardwerte zu.

Klicke auf Run und los geht’s.

Alles gut? 🙂

Dann lass uns den zweiten Konstruktor anlegen

Laut Aufgabenstellung soll dieser ein Objekt bekommen.

Und dann soll er die Instanzvariablen entsprechend erhöhen.

public class Mahnung {
 double mahnGebuehr;
 int mahnStufe;
 
 void gibInfo(){
 System.out.println("Mahnstufe: "+mahnStufe+" , Mahngebühr: "+mahnGebuehr+" Euro"); 
 }
 
 public Mahnung (){
 this.mahnStufe=1; //Zuweisung der Mahnstufe
 this.mahnGebuehr=5;//Zuweisung der Mahngebühr
 gibInfo();
 }
 
 public Mahnung (Mahnung erste){
 this.mahnGebuehr=erste.mahnGebuehr+5;//Bei jedem Aufruf erhöhung um 5
 this.mahnStufe=erste.mahnStufe+1; //Bei jedem Aufruf Erhöhung um 1
 gibInfo();
 }
 
 public static void main(String[] args) {
 Mahnung ersteMahnung = new Mahnung(); //erstes Objekt wird erstellt
 }
}

Na dann zum zweiten und dritten Objekt.
Jetzt übergibst du als Argument das erste Objekt.
Und dann das zweite, das dritte usw.

public class Mahnung {
	double mahnGebuehr;
	int mahnStufe;
	
	void gibInfo(){
	System.out.println("Mahnstufe: "+mahnStufe+" , Mahngebühr: "+mahnGebuehr+" Euro");	
	}
	
	public Mahnung (){
		this.mahnStufe=1; 
		this.mahnGebuehr=5;
		gibInfo();
	}
	
	public Mahnung (Mahnung erste){
		this.mahnGebuehr=erste.mahnGebuehr+5;
		this.mahnStufe=erste.mahnStufe+1;
		gibInfo();
	}
	
	public static void main(String[] args) {
		Mahnung ersteMahnung = new Mahnung();
		Mahnung zweiteMahnung = new Mahnung(ersteMahnung);//Objekt ersteMahnung wird übergeben
		Mahnung dritteMahnung = new Mahnung(zweiteMahnung);//Objekt zweiteMahnung wird übergeben
		
	}
}

Und läuft?

PS:
Von einem aufmerksamen Leser wurde ich darauf hingewiesen, dass der erste Konstruktor schon zwei Werte bekommen sollte. (Laut meiner Aufgabenstellung)

In meiner Lösung kommt aber dieser Teil gar nicht vor.
Ich habe lediglich einen default-Konstruktor und den, welcher Objekte entgegennimmt.

Danke an Christian für den Hinweis.
So würde die richtige Lösung aussehen:


public class Mahnung {
	double mahnGebuehr;
	int mahnStufe;
	
	void gibInfo(){
	System.out.println("Mahnstufe: "+mahnStufe+" , Mahngebühr: "+mahnGebuehr+" Euro");	
	}
	
	public Mahnung (){
		this.mahnStufe=1; 
		this.mahnGebuehr=5;
		gibInfo();
	}
	
	public Mahnung(int mahnStufe, int mahnGebuehr){ //neuer Konstruktor
		this.mahnStufe=mahnStufe; 
		this.mahnGebuehr=mahnGebuehr;
		gibInfo();
	}
	
	public Mahnung (Mahnung erste){
		this.mahnGebuehr=erste.mahnGebuehr+5;
		this.mahnStufe=erste.mahnStufe+1;
		gibInfo();
	}
	
	public static void main(String[] args) {
		Mahnung ersteMahnung = new Mahnung(1,5);//Konstruktor bekommt die Werte übergeben
		Mahnung zweiteMahnung = new Mahnung(ersteMahnung);//Objekt ersteMahnung wird übergeben
		Mahnung dritteMahnung = new Mahnung(zweiteMahnung);//Objekt zweiteMahnung wird übergeben
		
	}
}

Ähnliche Beiträge

Der Java Datentyp boolean im Interview

Java boolean

Nein, ich bin nicht verrückt. Aber… Neulich traf ich zufällig den Java Datentyp boolean. 🙂 Er erklärte sich bereit, mir ein Interview zu geben. In diesem Interview geht es um die Werte, welcher dieser Wertetyp annehmen kann. Und in diesem Zusammenhang geht es auch um Logik. Also lassen wir uns doch die Logik vom direkten […]

Hier sind ein paar richtig nette Features, die dich beim Java lernen unterstützen

Java lernen Eclipse

Was ist das Wichtigste beim Einstieg in ein neues Wissensgebiet? Nein, kein gutes Sachbuch oder ein besonders guter Lehrer. Es ist Spaß. Beim Java Lernen brauchst du Spaß. Es gibt Lehrer, welche ihren Stoff so vermitteln, dass Lernen Spaß bereitet. Aber die Grundvoraussetzung ist und bleibt der Spaß. Und nichts ist so spaßhemmend wie Langeweile […]

So verwendest du Inkrement und Dekrement Operatoren in deinen Java Programmen

Java Operatoren

In diesem Beitrag geht es um Java Operatoren. Ich möchte dir gern zwei neue Operatoren vorstellen. Diese nennen sich Inkrement und Dekrement. Ja was heißt das? Inkrementieren bedeutet eine schrittweise Erhöhung einer Zahl. Und dementsprechend bedeutet Dekrementieren: Die schrittweise Verminderung einer Zahl. Wozu brauchst du das? Stell dir vor. Du bekommst eine Liste mit Namen […]

Das Instanzieren von Java Klassen verhindern

Java Objekte Instanzieren verhindern

Die Instanzierung von Java Klassen verhindern. Was heißt das? Instanzen sind die Objekte einer Java Klasse. Und Instanzieren oder Instanzierung heißt nichts anderes, als Objekterstellung. Aber was soll das? Oder mal anders gefragt: Wieso sollte man verhindern, dass eine Java Klasse – Objekte erstellen kann? Schließlich sind doch Objekte der Sinn und Zweck jeder objektorientierten […]

Ende vom Java Blog?

Falls du hier schon länger dabei bist, wird dir aufgefallen sein – dass kaum noch Beiträge veröffentlicht werden. Das tut mir wirklich leid und dafür möchte ich mich auch entschuldigen. Ich weiß, dass Einige unter Euch den Java-Blog wirklich lieben. Aber es ist verdammt schwierig so ein aufwendiges Thema – stilvoll, unterhaltend und methodisch umzusetzen. […]

Die sechs Bestandteile von Java Methoden

Java Methoden Bestandteile

Java Methoden hauchen deinem Java Programm Leben ein. Ohne eine Methode würde deine Java Klasse ein starres Konstrukt sein. Deine Objekte hätten Eigenschaften. Aber sie könnten nichts machen. Und das wäre eine trostlose Welt. Java Methoden sorgen also dafür, dass Objekte interagieren. Methoden bestehen aus bestimmten Bausteinen. Und diese Bausteine bestimmen, was die Methode darf […]

Ohne Abstraktion ergibt Java Polymorphie wenig Sinn

Java Polymorphie Abstraktionsprinzip

Kennst du den Film Matrix? Denn kennst du vielleicht auch die Botschaft, welche der Protagonist am Anfang des Filmes erhält. „Folge dem weißen Kaninchen.“ Und so ähnlich ist es jetzt auch in diesem Beitrag. „Wir dringen immer tiefer in den Kaninchenbau ein.“ 🙂 Ganz so wie im Film wird es nicht. Aber bevor wir mit […]

Nutze die richtigen Methoden zum Java Lernen

Java lernen Methoden

Ich lernte die Java Programmierung auf die klassische Art. Ich kaufte mir das erste Buch und los ging es. „Jetzt wirst du Java lernen“ – sagte ich zu mir. Ich war relativ schnell ziemlich frustriert, denn irgendwie fehlten mir ein paar Zusammenhänge. Kennst du das? Du hast ein Wissensfetzen und noch einen. Aber das Wichtigste. […]

Java lernen von Kopf bis Fuß

Wenn du Java lernen möchtest, kannst du an meinem kostenlosen Java Kurs teilnehmen. Aber manch Einer hätte gern eine zweite Meinung. Und da bieten sich natürlich Java Bücher an. Eines dieser Java Bücher möchte ich dir jetzt vorstellen. Dieses Buch nennt sich „Java von Kopf bis Fuß“. Was kannst du von diesem Buch erwarten? Also […]