Methoden Rückgabewert Methoden

nico.wenda

Neues Mitglied
Hallo,
ich habe die methode zur bestimmung des kreuzproduktes erstellt. funktioniert auch alles soweit. nun möchte ich den betrag von dem kreuzprodukt bestimmen. nur wie kann ich den rückgabewert der methode kreuzprodukt in die methode Betrag einfügen?
Vielen dank schonmal im voraus.

Java:
public class Prisma {
  /**
  * @param args the command line arguments
  */
  public static void main(String[] args) {

    Vektor vektor1 = new Vektor(1,2);
    Vektor vektor2 = new Vektor(3,4);
    Vektor.kreuzprodukt(vektor1, vektor2);
  }
}

Java:
package pro1;
  /**
  *
  * @author Nico
  */
public class Vektor {

  public double x;
  public double y;
  public double z;

  public Vektor(double xNeu, double yNeu) {
    this.x = xNeu;
    this.y = yNeu;
    this.z = 0;
  }

  public Vektor(double xNeu, double yNeu, double zNeu) {
    this.x = xNeu;
    this.y = yNeu;
    this.z = zNeu;
  }

  public static double Betrag() {
    double betrag = Math.sqrt(x * x + y * y + z * z);
    return betrag;
  }

  public static Vektor kreuzprodukt(Vektor a, Vektor b) {
    double xNeu = a.y * b.z - a.z * b.y;
    double yNeu = a.z * b.x - a.x * b.z;
    double zNeu = a.x * b.y - a.y * b.x;
    return new Vektor(xNeu, yNeu, zNeu);
  }
}
 
Zuletzt bearbeitet von einem Moderator:

KSG9|sebastian

Top Contributor
Hi,

1. bitte Code-Tags benutzen
2. Methoden beginnen immer mit einem Kleinbuchstaben
3. Dein Code kann so nicht kompilieren, da du aus einer statischen Methode auf nicht-statische Variablen zugreifst (Methode Betrag, Variable x, y, z)
4. Eine Methode hat immer genau einen Rückgabetyp. Willst du mehr zurückgeben musst du dafür z.B. eine eigene Klasse machen
5. Ich verstehe deine Frage nicht, was willst du tun?
 

nico.wenda

Neues Mitglied
Danke für die schnelle Antwort. Ich möchte von zwei Vektoren mit einer x-,einer y- und einer z-Richtung zuerst das Kreuzprodukt berechnen und dann von dem Kreuzprodukt den Betrag bilden.
 

Saheeda

Top Contributor
Option 1:
Den Vektor, dessen Betrag ermittelt werden soll, als Parameter übergeben.

Option 2:
Die Methode nicht-statisch machen und den kreuzprodukt-Vektor darauf zugreifen lassen.

Java:
public class Prisma {
  /**
  * @param args the command line arguments
  */
  public static void main(String[] args) {
 
    Vektor vektor1 = new Vektor(1,2);
    Vektor vektor2 = new Vektor(3,4);
    Vektor kreuzprodukt =  Vektor.kreuzprodukt(vektor1, vektor2);
    
	double betrag = kreuzprodukt.Betrag();
	// oder
	double betrag = Vektor.Betrag(kreuzprodukt);
  }
}

class Vektor{
 
   public double Betrag() {
    double betrag = Math.sqrt(x * x + y * y + z * z);
    return betrag;
  }
  
  // oder
  
   public static double Betrag(Vektor v) {
    double betrag = Math.sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
    return betrag;
  }


}
 

Neue Themen


Oben