Einstieg Objektorientierung

luluuxs

Aktives Mitglied
Heyho, ich hänge an einer meiner Aufgaben schon ziemlich lange und habe das Gefühl, dass nur eine Kleinigkeit verkehrt ist. Wir sind in die Objektorientierung eingestiegen und hatten folgende Aufgabenstellung:
"Schreiben Sie ein Java-Programm Bucket.java, welches eine Klasse Bucket, deren Objekte Eimer darstellen, mit folgenden Attributen und Methoden deklariert:
• Bucket-Objekte haben jeweils ein Volumen (double volume) und einen Füllstand (double fillLevel) in Liter.
• Die Methoden double getFillLevel() und void setFillLevel(double level) sollen den Füllstand des Eimers zurückgeben bzw. setzen.
• Die Methode void fill() soll den Eimer vollständig füllen.
• Die Methode void merge(Bucket other) soll den Inhalt des Eimers other in diesen Eimer schütten. Würde der Eimer überlaufen, so geht der verschüttete Inhalt verloren. other soll nach Ausführung einen Füllstand von 0 haben.
Schreiben Sie zusätzlich eine main-Methode, welche zwei Eimer jeweils mit einem Volumen von 10 und einem Füllstand von 5 erzeugt. Rufen Sie auf dem zuerst erzeugten Objekt die Methode fill() auf und geben Sie den Füllstand dieses Objekts aus. Nutzen Sie zur Abfrage des Füllstands die getFillLevel()-Methode. Rufen Sie danach die Methode merge auf dem zuletzt erzeugten Objekt, mit dem zuerst erzeugten Objekt als Parameter, auf.
Beispielausgabe:
> java Bucket Fuellstand von Eimer 1 nach fill: 10.0
Fuellstand von Eimer 1 nach merge: 0.0
Fuellstand von Eimer 2 nach merge: 10.0"

Mein bisheriger Versuch sieht folgendermaßen aus:
Hat jemand einen Tipp, oder kann mir bei meinem Problem helfen ?
LG


[CODE lang="java" title="Bucket"]public class Bucket {

double level;
static int numBuckets;
static double fillLevel = 5;
static double volume = 10;

public Bucket(double volume, double fillLevel) {
numBuckets++;
}

double getFillLevel() {
return fillLevel;
}

void setFillLevel(double level) {
fillLevel = level;
}

void fill() {
level = volume;
setFillLevel(level);
}

void merge(Bucket other) {
double o = other.getFillLevel();
double t = getFillLevel();
t = t + o;
if (t > volume) {
t = volume;
}
o = 0;
}

public static void main(String[] args) {
Bucket one = new Bucket(volume, fillLevel);
Bucket two = new Bucket(volume, fillLevel);
one.fill();
Out.println("Fuellstand von Eimer 1 nach fill: " + one.getFillLevel());
two.merge(one);
Out.println("Fuellstand von Eimer 1 nach merge: " + one.getFillLevel());
Out.println("Fuellstand von Eimer 2 nach merge: " + two.getFillLevel());
}
}
[/CODE]
 

temi

Top Contributor
Generell sollte dein Programm nur ein "static" haben und zwar bei public static void main()

Dann hat deine Klasse Bucket noch zwei Instanzvariablen, welche nicht von der Aufgabe verlangt werden.

Und deine Methode merge() ändert nur die dort deklarierten lokalen Variablen t und o. Am Ende der Methode werden die ungültig, damit macht die Methode effektiv gar nichts. Du musst schon auch die jeweiligen Instanzvariablen anpassen.
 
Zuletzt bearbeitet:

Jw456

Top Contributor
Hallo beim erzeugen deiner Objekte musst du schon die werte die im Objekt gespeichert werden sollen mitgeben.
Java:
Bucket one = new Bucket(10.0, 5.0);

Dein Konstruktor macht auch nicht das was er soll. Nämlich die übergeben Werte in den InstanzVariablen speichern . Du gibt sie immer vor.
Somit ist jedes Objekt gleich. Was du eigentlich nicht willst.
Egal welche Werte du beim Objekt erzeugen mit gibst.



Java:
    double level;
    int numBuckets;
    double fillLevel ;
    double volume ;

    public Bucket(double volume, double fillLevel) {
        this.volume = volume;
        this.fillLevel = fillLevel;
        numBuckets++; //Was das Soll kann ich nicht nachvollziehen
    }
 
Zuletzt bearbeitet:

luluuxs

Aktives Mitglied
Hallo beim erzeugen deiner Objekte musst du schon die werte die im Objekt gespeichert werden sollen mitgeben.
Java:
Bucket one = new Bucket(10.0, 5.0);

Dein Konstruktor macht auch nicht das was er soll. Nämlich die übergeben Werte in den InstanzVariablen speichern . Du gibt sie immer vor.
Somit ist jedes Objekt gleich. Was du eigentlich nicht willst.
Egal welche Werte du beim Objekt erzeugen mit gibst.



Java:
    double level;
    int numBuckets;
    double fillLevel ;
    double volume ;

    public Bucket(double volume, double fillLevel) {
        this.volume = volume;
        this.fillLevel = fillLevel;
        numBuckets++; //Was das Soll kann ich nicht nachvollziehen
    }
Vielen Dank,

habe vergessen, dass ich mein Aus kommentierten Code in der merge-Methode mit hätte kopieren sollen..., sorry
Java:
void merge(Bucket other) {
        double o = other.getFillLevel();
        double t = getFillLevel();
        t = t + o;
        if (t > volume) {
            t = volume;
        }
        o = 0;
        other.setFillLevel(o);
        setFillLevel(t);
    }
 

luluuxs

Aktives Mitglied
Generell sollte dein Programm nur ein "static" haben und zwar bei public static void main()

Dann hat deine Klasse Bucket noch zwei Instanzvariablen, welche nicht von der Aufgabe verlangt werden.

Und deine Methode merge() ändert nur die dort deklarierten lokalen Variablen t und o. Am Ende der Methode werden die ungültig, damit macht die Methode effektiv gar nichts. Du musst schon auch die jeweiligen Instanzvariablen anpassen.
Danke sehr
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Einstieg Objektorientierung Java Basics - Anfänger-Themen 4
xXGrowGuruXx Java einstieg, leichte sache 0 verstanden Java Basics - Anfänger-Themen 7
D Java Einstieg Java Basics - Anfänger-Themen 4
G JAVA Einstieg Java Basics - Anfänger-Themen 26
X Erste Schritte Einstieg ins Programmieren Java Java Basics - Anfänger-Themen 2
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
M Wie schaffe ich den Einstieg? Java Basics - Anfänger-Themen 2
T Einstieg in "grafische Progammierung" + Rechnen in Flussdiagramm Java Basics - Anfänger-Themen 2
B Einstieg in swing GUI Java Basics - Anfänger-Themen 7
R Einstieg in Programmierung Java Basics - Anfänger-Themen 8
Z Einstieg in LWJGL Java Basics - Anfänger-Themen 7
D Erste Schritte Einstieg in die Java Spiel Programmierung Java Basics - Anfänger-Themen 7
R Erste Schritte Einstieg Java Basics - Anfänger-Themen 4
Grejak OOP Einstieg in Objekt-Orientierte-Programmierung Java Basics - Anfänger-Themen 3
E Hilfe beim Einstieg Java Basics - Anfänger-Themen 46
R Einstieg Java Basics - Anfänger-Themen 4
F Einstieg Java Basics - Anfänger-Themen 3
Bastler66 Erste Schritte Einstieg JDK Java Basics - Anfänger-Themen 3
S Erste Schritte Der Einstieg in Java Java Basics - Anfänger-Themen 8
R Einstieg Webentwicklung Java Basics - Anfänger-Themen 3
A Einstieg in Java. Java Basics - Anfänger-Themen 21
N Java Einstieg Schiffe versenken Java Basics - Anfänger-Themen 4
C JAVA - Einstieg mit Eclipse - Update Sites und Ähnliches Java Basics - Anfänger-Themen 6
A Datenbanken - ein Einstieg Java Basics - Anfänger-Themen 4
A Einstieg in JSF Java Basics - Anfänger-Themen 4
A Einstieg in die Programmierung Java Basics - Anfänger-Themen 20
G Einstieg EJB3 Java Basics - Anfänger-Themen 2
M XML-Einstieg Java Basics - Anfänger-Themen 4
M Einstieg in die Webentwicklung mit Java? Java Basics - Anfänger-Themen 16
D Einstieg Java Basics - Anfänger-Themen 4
S MS Visual Studio.NET und Einstieg in Visual JAVA# Java Basics - Anfänger-Themen 27
P Java beginner - Buch: Java- Einstieg für Anspruchsvolle Java Basics - Anfänger-Themen 6
G Einstieg in Java Java Basics - Anfänger-Themen 5
S Was zum Einstieg probieren? Java Basics - Anfänger-Themen 8
S Fragen zum Einstieg Java Basics - Anfänger-Themen 9
K Probleme beim Einstieg Java Basics - Anfänger-Themen 2
S Tipps zum Einstieg in Java Java Basics - Anfänger-Themen 30
A Hilfe beim Java-Einstieg Java Basics - Anfänger-Themen 3
J Java-Einstieg ;-) )) Java Basics - Anfänger-Themen 2
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
L Einführung Objektorientierung Java Basics - Anfänger-Themen 8
H Wie geht eigentlich Objektorientierung? Java Basics - Anfänger-Themen 14
L Objektorientierung Java Basics - Anfänger-Themen 6
B Objektorientierung Java Basics - Anfänger-Themen 1
M Array und Objektorientierung? - TicTacToe Spiel Java Basics - Anfänger-Themen 43
T Objektorientierung-Kurze Frage Java Basics - Anfänger-Themen 5
L Hilfe! Objektorientierung Java Basics - Anfänger-Themen 3
S OOP Zusammenhang von Objektorientierung und Ausnahmebehandlungen Java Basics - Anfänger-Themen 6
C Objektorientierung? Java Basics - Anfänger-Themen 5
G Designfrage/Objektorientierung Java Basics - Anfänger-Themen 19
S Methoden Aufgabe zu ""Methoden" und "Objektorientierung" Java Basics - Anfänger-Themen 3
B OOP Programm zur Verdeutlichung von Objektorientierung Java Basics - Anfänger-Themen 7
T Initialisierungen der einzelnen Klassen - Objektorientierung Java Basics - Anfänger-Themen 4
B Objektorientierung Java Basics - Anfänger-Themen 2
X Objektorientierung Einführung Java Basics - Anfänger-Themen 2
A Objektorientierung Klassen Java Basics - Anfänger-Themen 4
D Objektorientierung / Polymorphismus Java Basics - Anfänger-Themen 8
Spin Objektorientierung . Konzept Java Basics - Anfänger-Themen 4
M Objektorientierung Java Basics - Anfänger-Themen 3
M Objektorientierung - wie macht man's richtig? Java Basics - Anfänger-Themen 3
R ObjektOrientierung Java Basics - Anfänger-Themen 18
D Objektorientierung ? Java Basics - Anfänger-Themen 4
D Objektorientierung Listen Java Basics - Anfänger-Themen 2
J objektorientierung und uml Java Basics - Anfänger-Themen 5
D Objektorientierung - wie konsequent sollte man sein ? Java Basics - Anfänger-Themen 30
D Zuerst Objektorientierung oder GUI ? Java Basics - Anfänger-Themen 19

Ähnliche Java Themen

Neue Themen


Oben