Return-Anweisung Feldausgabe

  • Themenstarter Themenstarter Guest
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Guten Morgen!

Ich hätte da ein kleines Problem mit meinem Programm. Unszwar möchte ich zwei double Variablen in einer Methode zurückgeben. Dadurch muss ich in der return-Anweisung ja ein neues Feld erstellen bzw. auch in der Methodendeklaration double[] einsetzen.

Bei Feldern greift man ja im Prinzip nur auf die Referenz zu oder so ähnlich und die wird mir dann auch ausgegeben. Normalerweise würde man da ja über den namen des Feldes zugreifen (feld[x]), aber da ich das Feld erst in der return-Anweisung erstellt habe geht das nicht?!

Müsste ich jetzt vorab ein Feld mit den beiden Werten erstellen oder kann ich auch irgendwie direkt auf die Werte zugreifen mit der return-Anweisung?

Code:
public class Punkt {
	
	static double x;
	static double y;

	public static void main (String[] args)
	{
		
	Punkt a = new Punkt(2.1, 1.2);
	System.out.println(getPunkt());
	}
	
	Punkt(double x, double y)
	{
		this.x = x;
		this.y = y;
	}
	
	void setPunkt(double x, double y)
	{
		this.x = x;
		this.y = y;
	}
	
	static double[] getPunkt()
	{
		return new double[] {x, y};
	}
	
}
}
 
> aber da ich das Feld erst in der return-Anweisung erstellt habe geht das nicht?!


innerhalb der Methode getPunkt(); brauchst du ja auch gar nicht darauf zugreifen, bzw. nach dem return gibts logischerweise keinen Code mehr

der Aufrufer kann entwerden on the fly auf nur eines der Felder zugreifen:
System.out.println(getPunkt()[0]);
oder
System.out.println(getPunkt()[1]);

oder du speicherst das Objekt:
double[] ar = getPunkt();
System.out.println(ar[0]);
System.out.println(ar[1]);
 
Ok, wollte jetzt nicht extra nen neuen Thread machen. Hab wieder Schwierigkeiten, aber dieses mal mit equals. Benutz die Methode zum ersten mal und scheine da wohl irgendwas falsch zu machen:

Code:
    boolean equals(double x, double y)
    {
    boolean vergleich = false;

    this.x = x;
    this.y = y;
    
    vergleich = x.equals(y);
    }

Bei x.equals(y); hab ich den Fehler: "Cannot invoke equals(double) on the primitive type double".

Hat jemand nen Tipp? Bestimmt wieder nen ganz doofer Fehler ...
 
double vergleicht man nicht mit == ...
da der vergleich oft nicht stimmt!

Code:
public static boolean istfastgleich(double a, double b) {
		
	double EPSILON = 1.0E-10;
		
	if(Math.abs(a-b) < EPSILON)
		return true;
	else
		return false;
		
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben