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

Java lernen durch ständiges Testen – Nutze die Testumgebung von Eclipse

Java Programmierung lernen

Probieren geht über studieren Wenn du wirklich Java Programmierung lernen möchtest, dann solltest du Java nicht aus einem Buch lernen. Du solltest auch nicht strikt von dieser oder anderen Webseiten lernen. Etwas wirklich zu lernen, setzt die Bereitschaft voraus, etwas zu probieren. Denn nur durch eigenes Probieren gelangst du zum Wesentlichen. Durch Probieren wirst du […]

So kannst du Java Methoden überladen

Java Methoden überladen

Im Mittelalter war es üblich, dass Könige oder Adlige Briefe durch ein Siegel verschlossen. Das Siegel hatte die Aufgabe den Inhalt des Briefes vor dem gewaltsamen Öffnen zu schützen. Außerdem hatte das Siegel die Aufgabe einen Eigentumsnachweis sicher zu stellen. Und jeder, welcher das Siegel des Königs sah, wusste: „Das königliche Siegel – Oh ein […]

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

Ein Java Fenster erzeugen mit dem JFrame

Java-Fenster-erzeugen

Ein Java Fenster erzeugen mit Swing. Java Swing – was ist das? Zum Erstellen von grafischen Benutzeroberflächen, kurz GUI, bietet Java eine eigene Standardklasse an. Diese Klasse nennt sich Swing. Aus dieser Swing-Klasse heraus können Objekte erstellt werden. Diese Objekte lassen sich in vier verschiedene Kategorien einteilen. Fenster und Dialoge bilden das Grundgerüst einer grafischen […]

Das Java Leben ist einfacher mit For-Schleife

Java For Schleife Aufbau

In einem anderen Artikeln habe ich bereits über Schleifen in Java gesprochen. In diesem Artikel möchte ich dir eine ganz besondere Schleife vorstellen. Warum ist diese so toll? Sie hat einen integrierten Schleifenzähler. Die Schleife zählt also bei jedem Durchlauf automatisch mit. Aber dazu gleich mehr…. Lass uns einmal so eine For Schleife anlegen.

Java Vererbung – Die Hierarchien richtig planen

Java Vererbung Hierarchien

Java Vererbung hat nichts mit Biologie zu tun. Die Genetik besagt, dass bestimmte Merkmalsausprägungen von den Eltern auf die Kinder übergehen. Solche Merkmalsausprägungen sind: die Hautfarbe die Haarfarbe die spezifische Größe und weitere körperliche Merkmale. Und in Java – was ist da Vererbung? Lass es uns herausfinden. Was erwartet dich in diesem Beitrag? Zuerst schauen […]

Der wichtige Unterschied zwischen Java Methoden

Java Methoden Unterschied

Jetzt machen wir Nägel mit Köpfen. Dieses Sprichwort stammt aus den Anfängen des Industriezeitalters. Denn früher wurden Nägel nicht industriell, sondern per Hand gefertigt. Und da kam es schon einmal vor, dass versehentlich Nägel ohne Kopf produziert wurden. Was blieb ist das Sprichwort „Nägel mit Köpfen“ Und dieses steht sinngemäß für eine schnelle, qualitativ hochwertige […]

So organisierst und verwaltest du ganz bequem deine Java Projekte

Du kennst das auch. Denn du bist ja fleißig. Und weil du so fleißig bist, hast du mitunter auch mehrere Java Projekte gleichzeitig laufen. Und dann kommt es vor, dass du enorm viele Java Projekte am Laufen hast. Und dein Package-Explorer wird extrem unübersichtlich. In diesem Beitrag möchte ich dir zwei Varianten vorstellen, wie du […]