Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Methode in einer anderen Methode benutzen (http://www.informatikerboard.de/board/thread.php?threadid=1546)


Geschrieben von Lycaner am 09.07.2013 um 17:39:

  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;
}
}



Geschrieben von eulerscheZahl am 09.07.2013 um 22:30:

 

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



Geschrieben von Lycaner am 10.07.2013 um 08:17:

 

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.



Geschrieben von eulerscheZahl am 10.07.2013 um 09:38:

 

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.



Geschrieben von Lycaner am 10.07.2013 um 09:48:

 

Vielen Dank.

Ehrlich gesagt, ich weiß nicht wie ich den [ code]...[ /code]-Tags verwende, deswegen verwende ich es nicht(((



Geschrieben von eulerscheZahl am 10.07.2013 um 09:54:

 

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.



Geschrieben von Karlito am 11.07.2013 um 11:56:

 

Hab mal den Thread verschoben.

Gruß,

Karlito


Forensoftware: Burning Board, entwickelt von WoltLab GmbH