Java Aufgabe lezte Hürde ein Rätzel ??

mythus

Komplett-PC-Aufrüster(in)
Java Aufgabe lezte Hürde ein Rätzel ??

Hallo zusammen,
Ich habe eine Aufgabe bekomme die ich Lösen muss nix großes aber ich bleibe bei einer Methode hängen, die ich nicht verstehe wie dort die Datenübernahme und Rückgabe gehen soll.
2013-11-03 16.34.49.jpg
BlutDruck_test.java
Code:
public class BlutDruck_test
{
    public static void main(String args[])
    {
        BlutDruck b = new BlutDruck("P1234", 80, 120);
        
        System.out.println();
        b.ausgabe();
        
        System.out.println();
        System.out.println( " im Mittel : " [COLOR=darkorange]+BlutDruck.mittel(b) );
    }
}
Diese Teil des Programm wird vorgegeben.

jetzt habe ich eine Blutdruck.java erstellt
BlutDruck.java
Code:
public class BlutDruck
{
    public BlutDruck(String p, int d, int s)
    {
        patient=p;
        dia=d;
        sys=s;
    }

public void ausgabe()
{
    [COLOR=red]double y,z,a;
        double mittel;
        y=dia;
        z=sys;
        a=(double) 1/3;
        mittel= y+a*(z-y);    System.out.println( "Ergebeniswerte von, ");
    System.out.println(" Patient : " + patient);
    System.out.println(" Dia - Wert: " + dia+ " mmHg");
    System.out.println(" Sys - Wert: " + sys+ " mmHg");
    [COLOR=red]System.out.println(" Mittel - Wert: " + mittel+ " mmHg");}
public String  patient;
public int dia;
public int sys;
public double mittel;
}
Ich komme aber beim schreiben der Methode BlutDruck.mittel(b) nicht klar, weil ich ja nicht direkt die Daten übermittel.
Klar wurde die nötigen Werte im Vorfeld schon erledigt.
die b.ausgabe() Funktioniert nur der Rest dannach nicht.
Der Rote Teil war zum test ob die Werte überhaupt ermittel werden, das klappt auch.

System.out.println( " im Mittel : " +BlutDruck.mittel(b) );
 
AW: Java Aufgabe lezte Hürde ein Rätzel ??

Simpel. Warte einen Moment.

So, hier. Normal mach ich sowas nicht. Aber ich bin noch Betrunken und zu Faul zum Erklären.

Der Code. Ungetestet und unter Alkoholeinfluss entstanden. Müsste aber funktionieren: http://d.pr/n/kJ9H
 
Zuletzt bearbeitet:
AW: Java Aufgabe lezte Hürde ein Rätzel ??

Alles klar mit kleinen Anpassungen klapp es jetzt vielen Dank

Code:
public class BlutDruck {
    private String patient;
    private int dia;
    private int sys;
    private static double mittel;

    public BlutDruck(String p, int d, int s)
     {
        this.patient = p;
        this.dia = d;
        this.sys = s;
        double y,z,a;
        y = d;
        z = s;
        a = (double) 1/3;
        mittel = y+a*(z-y);
            }

    public void ausgabe() {
        System.out.println( "Ergebeniswerte von, ");
        System.out.println(" Patient : " + patient);
        System.out.println(" Dia - Wert: " + dia+ " mmHg");
        System.out.println(" Sys - Wert: " + sys+ " mmHg");
    }
    public static String mittel(BlutDruck b)
    {
        
        return String.valueOf(mittel);
    }
}
 
AW: Java Aufgabe lezte Hürde ein Rätzel ??

also wenn ichd as richtig verstehe
1 Schritt
erstelle eine statische Variable die Privat ist also nur in der Klasse zur Verfügung steht.
2. Schritt
Verwende sie zum berechnen in der Klasse.
3. Schritt
Wandel mittel in einen öffentlichen String der bei aufruf der Klasse.methode BlutDruck.mitte(b) den inhalt zurück gibt.
so etwa richtig?!
 
AW: Java Aufgabe lezte Hürde ein Rätzel ??

Richtig. ;)

Noch eine Anmerkung. Variablen am besten immer privat, wenn du sie von außerhalb benötigst schreibe setter und getter.
 
AW: Java Aufgabe lezte Hürde ein Rätzel ??

Hallo,
so weit ich das sehen kann ist bei der Lösung von Leandros noch die Methode mittel(BlutDruck b) nicht ganz richtig, weil in der Aufgabe als Rückgabewert ein double gefordert wird.
Demnach müsste die Methode so lauten:
Code:
	public static double mittel(BlutDruck b){
		return b.mittel;
	}

In deiner Methode ausgabe() hast du übrigens eine lokale Variable "mittel" erstellt. Diese hast du aber auch als globale Variable.
Lösche in deiner Methode ausgabe() die Zeile
Code:
double mittel;
Dann sollte alles funktionieren.
 
Zuletzt bearbeitet:
AW: Java Aufgabe lezte Hürde ein Rätzel ??

Hab auch mal rumgebastelt^^

Code:
public class BlutDruck {
	private String patient;
	private int dia;
	private int sys;

	public BlutDruck(String p, int d, int s) {
		this.patient = p;
		this.dia = d;
		this.sys = s;
	}

	public void ausgabe() {

		System.out.println(" Ergebeniswerte von, ");
		System.out.println(" Patient : " + patient);
		System.out.println(" Dia - Wert: " + dia + " mmHg");
		System.out.println(" Sys - Wert: " + sys + " mmHg");
	}

	public static double mittel(BlutDruck b) {

		double y, z, a;
		double mittel;

		y = b.dia;
		z = b.sys;
		a = (double) 1/3;
		mittel = y + a * (z - y);

		return mittel;
	}
}
 
Zurück