OOP DrinkContainer

Lee01

Mitglied
Hallo zusammen,

bin blutiger Anfänger in Java und muß folgende Aufgabenstellung lösen bzw. habe ich die Lösung bereits, nur verstehe ich einen Aspekt daran nicht wirklich. Hier die Aufgabe:

Schreiben Sie eine Klasse DrinkContainer (im Code mit DC abgekürzt), die ein Datenfeld
vom Typ int mit Namen nInhalt und ein Datenfeld vom Typ
string mit Namen sName enthält und passende Accessor
Methoden.
- Der Default Konstruktor soll die Werte 250 und Tasse
enthalten.
- Ergänzen Sie die Klasse um einen Konstruktor der beide
Datenfelder mit übergebenen Werten belegt.
- Schreiben Sie eine Klasse DrinkContainerTest, die 2
Instanzen von DrinkContainer erzeugt jeweils einmal mit
jedem Konstruktor. Geben Sie anschließend beide Datenfelder
beider Instanzen aus.

Die Lösung dafür ist folgende:
Java:
public class DC{
	private int nInhalt;
	private String sName;
	public DC(){
		nInhalt = 250;
		sName = "Tasse";
	}
	public DC(int n, String s){
		nInhalt = n;
		sName = s;
	}
	public void setName(String s){
		sName = s;
	}
	public void setInhalt(int n){
		nInhalt = n;
	}
	public String getName(){
		return sName;
	}
	public int getInhalt(){
		return nInhalt;
	}
	public String nameInfo(String s){
		if(s.equals("")){
			return sName;
		}
		else{
			sName = s;
			return "";
		}
	}
	public void printDC(){
		System.out.print("Name: " + sName);
		System.out.println(" Inhalt. " + nInhalt);
	}
}

public class TestDC{
	public static void main(String[] args){
		DC d = new DC();
		DC e = new DC(123, "Piffi");
		d.nameInfo("Honsa");
		//e.setName("Puffi");
		System.out.println(d.nameInfo("") + d.toString());
		System.out.println(d.getInhalt() + d.toString());
		System.out.println(e.getName()
		+ e.toString());
		System.out.println(
		e.getInhalt() + e.toString());
	}
}

Nun meine Frage: Ich verstehe den Zusammenhang des Codes ab Zeile 12 bis 30 mit der Aufgabenstellung nicht. Hat jemand eine Idee?
 
Zuletzt bearbeitet von einem Moderator:

XHelp

Top Contributor
Also was
Code:
nameInfo
macht ist mir auch ein Rätsel.
Aber die setter und getter Methoden beziehen sich auf:
... string mit Namen sName enthält und passende Accessor
Methoden
.
Damit kannst du deine Werte auslesen.
Darüber hinaus fehlt noch die überschribene Methode
Code:
toString
(oder die eben nicht verwenden in der Tester Klasse)
 

Lee01

Mitglied
sorry, hatte mich da wohl etwas vertan. die get/set-Methoden sind klar, die Methode mit
Code:
nameInfo
ist mir unklar, da hiervon in der Aufgabenstellung nichts erwähnt ist...oder doch?

Und ja, ich habe die Aufgabe auch bereits ohne Lösung selber versucht :)
 

Ezra

Bekanntes Mitglied
Die Methode macht einfach nur folgendes:
Übergibt man ihr einen nichtleeren String, wird sName damit gesetzt - die Methode also als Setter genutzt. Übergibt man ihr einen leeren String, nutzt man sie als Getter, dann wird sName zurückgegeben. Warum man da nicht gleich die Getter und Setter von sName nutzt (die ja auch noch vorhanden sind), ist mir ein Rätsel. Meines Erachtens ist das vollkommen unnötig.
 

Neue Themen


Oben