Methode in einer anderen Methode benutzen

Neue Frage »

Auf diesen Beitrag antworten »
Lycaner Methode in einer anderen Methode benutzen

Ich habe bei java zwei Klassen.
Die erste Klasse ist Flasche und hat folgende Methode;

public double berechneInhalt(){
return this.dVolumen*this.dFüllstand;

Die zweite Klasse Kiste soll eine Kiste mit 9 Flaschen darstellen:

public Kiste(){
Flasche a1; Flasche a2;Flasche a3;Flasche a4;Flasche a5;
Flasche a6;Flasche a7;Flasche a8;Flasche a9;}

public double bInhalt(Vector<Kiste>k){
double erg=0;
for(int i = 0; i < k.size(); i++){

erg=erg+ /****wie kann ich hier auf die Methode berechneInhalt der Flasche
zugreifen?******/

}
return erg;
}
}
 
Auf diesen Beitrag antworten »
eulerscheZahl

Hier mal ein kurzes Beispiel, bei 9 Flaschen rate ich dir aber zu einem Array.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public class Kiste {
	Flasche a1, a2, a3;
	public Kiste(Flasche a1, Flasche a2, Flasche a3){
		this.a1 = a1;
		this.a2 = a2;
		this.a3 = a3;
	}

	public double bInhalt(){
		double erg=0;
		
		erg=erg+ a1.berechneInhalt() + a2.berechneInhalt() + a3.berechneInhalt();
		return erg;
	}
}

Im Konstruktor definierst du nur Variablen, die weder initialisiert noch verwendet werden.

Für die Zukunft:
- lieber etwas mehr von deinem Programm anfügen, als zu wenig. Ich weiß nicht genau, was das werden soll, so kommt mir die Inhaltsberechnung seltsam vor: Volumen * Höhe, also von der Einheit m^4 verwirrt
- verwende [_code]...[_/code] (ohne Unterstrich), dann bleibt das alles schön eingerückt
- Java gehört nicht ins Unterforum theoretische Informatik / formale Sprachen, sondern in die praktische Informatik
Auf diesen Beitrag antworten »
Lycaner

Es sind alte Klausuraufgaben mit verschieden Aufgabenstellungen z.B.
die erste Aufgabe war, in einer Klasse Flasche zwei Konstruktoren zu erzeugen, bei einem soll er zwei Werte bekommen eins für Volumen und eins für den Füllstand(z.B50%) und der zweite soll keine Werte bekommen aber die beiden die Werte Volumen auf 0,75 und Füllstand auf 100% setzen.
Als zweite Aufgabe sollte die Klasse eine Methode berechneInhalt bekommen.
So sieht meine Klasse Flasche aus:

public class Flasche {
double dVolumen;
double dFüllstand;
public Flasche(){
dVolumen=0.75;
dFüllstand=100;
}
public Flasche(double dVolumen, double dFüllstand){
this.dVolumen=dVolumen;
this.dFüllstand=dFüllstand;
}
public double berechneInhalt(){
return this.dVolumen*this.dFüllstand;
}
}
Die dritte Aufgabe war, eine Klasse Kiste hinzufügen, die in einem Vector nur die Objekte Kiste speichert. Außerdem sollte die Klasse einen parameterlosen Konstruktor mit 9 Flaschen bekommen.
Die vierte Aufgabe war, eine berechneInhalt für die Kiste schreiben mit dem Zusatz, dass man die Methode berechneInhalt der Klasse Flasche verwendet.
Auf diesen Beitrag antworten »
eulerscheZahl

bitte [ code]...[ /code]-Tags verwenden.
Wäre es nicht sinnvoller, den Füllstand der vollen Flasche auf 1 zu definieren, statt auch 100?

Hier nochmal die Kiste mit parameterlosem Konstruktor:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
public class Kiste {
	Flasche[] a;
	final static int anzahl = 9;
	public Kiste(){
		a = new Flasche[anzahl];
		for(int i = 0; i < anzahl; i++)
			a[i] = new Flasche();
	}

	public static double bInhalt(Vector<Kiste> v){
		double erg = 0;
		for(int kiste = 0; kiste < v.size(); kiste++)
		{
			for(int i = 0; i < anzahl; i++)
				erg += ((Kiste)v.elementAt(kiste)).a[i].berechneInhalt();
		}
		return erg;
	}
}



	public static void main(String[] args)
	{
		Vector<Kiste> k= new Vector<Kiste>();
		for(int i = 0; i < 5; i++) k.add(new Kiste());
		double d = Kiste.bInhalt(k);
		System.out.print(d);
	}

Den Aufruf, den du gesucht hast, siehst du in Zeile 15.
 
Auf diesen Beitrag antworten »
Lycaner

Vielen Dank.

Ehrlich gesagt, ich weiß nicht wie ich den [ code]...[ /code]-Tags verwende, deswegen verwende ich es nicht(((
Auf diesen Beitrag antworten »
eulerscheZahl

code:
1:
2:
3:
4:
5:
6:
7:
public static void main(String[] args)
{
	Vector<Kiste> k= new Vector<Kiste>();
	for(int i = 0; i < 5; i++) k.add(new Kiste());
	double d = Kiste.bInhalt(k);
	System.out.print(d);
}


Klicke mal bei meinem Beitrag auf "Zitat", dann siehst du, wie ich es gemacht habe.
Auf die gleiche Weise kannst du fett, kursiv, farbig, in anderer Schriftart... schreiben.
Auf diesen Beitrag antworten »
Karlito

Hab mal den Thread verschoben.

Gruß,

Karlito
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »