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

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 […]

So lassen sich Java Strings in char zerlegen

Java Strings zerlegen char

Java Strings sind Zeichenketten. Und diese Zeichenketten lassen sich aufsplitten und in ihre Einzelteile zerlegen. Ich möchte dir in diesem Beitrag Möglichkeiten vorstellen, wie du Strings in Character-Datentypen zerlegen, extrahieren und die Einzelteile in Arrays speichern kannst.

Java for Schleifen schachteln – So funktioniert es

Java For Schleifen schachteln

Diese Situation kennst du doch auch…. Du stehst an der Haltestelle und wartest auf den Bus. Dein Blick fällt auf die Uhr.   Oder du wartest an der Ecke auf deinen Freund oder Kollegen. Immer wieder schaust du auf deine Uhr.   Sie ist kaum noch wegzudenken. Die mobile Taschenuhr.   Lange Zeit wurde die […]

Java Exceptions Handling – Fehler- und Ausnahmenbehandlung in Java

Java Exceptions Handling

Java Exceptions Handling umfasst den richtigen Umgang mit Ausnahmen und Fehlern. Wie geht das? Und braucht man so etwas wirklich? Vielleicht sagst du jetzt: „Brauch ich nicht. Ich mache niemals Fehler.“ Doch… Bei der Java Fehlerbehandlung geht es nicht ausschließlich nur um deine Programmierfehler. Es geht auch um falsche Nutzereingaben, Hardware- und Ablauffehler. Und deshalb […]

10 ganz nützlichen Feature der Klasse Java Math

In diesem Beitrag geht es um eine spezielle Java Klasse. Die Klasse nennt sich Java Math. Diese ist in der Standardbibliothek von Java enthalten. Warum solltest du diese Klasse kennen? Die Math Klasse bietet dir einen Menge Methoden an, welche zur Berechnung von mathematischen Gleichungen ganz hilfreich sind. Aber auch für Nichtmathematiker ist etwas dabei. […]

Java Duales Zahlensystem – Binäre Zahlen in Java umwandeln

Java Dual System

Das duale Zahlensystem hat viele Bezeichnungen. Oft wird auch es Dualsystem oder Binärsystem genannt. Es besteht aber immer aus 2 Zahlen. Man verwendet oft die Zahlen 0 und 1. Es können aber auch sämtliche anderen Zahlenpaare sein. Zum Beispiel 7 und 175 sind für sich genommen, auch ein normales Zahlenpaar und somit ein Dualsystem. Mit […]

Nutze das Java Switch Case Statement für komplexe Verzweigungen

Java Switch case

Java switch case statement – was ist das? Wozu brauchst du das? Lass mich anders beginnen… 🙂 In einen meiner früheren Beiträge habe ich schon einmal über bedingte Anweisungen oder Zuweisungen geschrieben. Diese if und else Konstrukte funktionieren eigentlich ganz gut. Aber was ist, wenn du mehrere Parameter abfangen möchtest. Okay ein Beispiel…

So kannst du in Java Und Verknüpfung anlegen und auswerten

Java Und

In Java stehen dir eine Menge Operatoren zur Verfügung. Einer dieser Operatoren ist der Und-Operator. Dies ist ein logischer Operator, da dieser sogenannte Wahrheitswerte mit einander verknüpft. Also…. Was erwartet dich in diesem Beitrag? Zuerst möchte ich dir die Aussagenlogik hinter dem Und-Operator zeigen. Also wann sind Aussagen wahr und wann sind diese falsch. Dann […]

So kannst du Eclipse installieren

Eclipse installieren

Das Schöne an Eclipse ist, es läuft auf sämtlichen Betriebssystemen. Eclipse wird einfach auf der Webseite des Herstellers herunter geladen und kann dann installiert werden. Dabei stehen dir verschiedene Versionen zur Verfügung.

Java Vererbung findet auch zwischen Einkaufstüten und Polizeiautos statt

Java Vererbung

„Manchmal findet Java Vererbung auch zwischen Einkaufstüten und Polizeiautos statt“ Irrer Titel, oder? Aber mal Hand aufs Herz. Was haben eigentlich eine Einkaufstüte und ein Polizeiwagen gemeinsam? Ich verrate dir etwas: Du kannst die Verbindung nicht erkennen, denn ich habe dir nicht alles verraten. Es fehlt noch ein wichtiger Aspekt – eine Verbindung zwischen beiden. […]