我是学生,我们的老师告诉我们制作一个名为SOMME
的静态方法来计算向量总和,(它在代码中称为SOMME
)他说它应该是static
,我不知道问题出在哪里我几乎尝试了所有可能的方法来解决问题,但没有解决方案。
这是代码:
import java.util.*;
public class Vecteur {// 3D
public double x;
public double y;
public double z;
public Vecteur (double x,double y,double z )
{
this.x=x;
this.y=y;
this.z=z;
}
public void affichage ()
{
System.out.println("("+x+","+y+","+z);
}
public double norme()
{
return Math.sqrt(x*x+y*y+z*z);
}
public static Vecteur somme(Vecteur v) // he told us to make it static nom matter what
{
Vecteur u=new Vecteur(0.0,0.0,0.0);
u.x=x+v.x;
u.y=y+v.y;
u.z=z+v.z;
return u;
}
public double produit(Vecteur v)
{
return x*v.x+y*v.y+z*v.z;
}
}
答案 0 :(得分:1)
如果你想要它是静态的,你必须这样做:
public static Vecteur somme(Vecteur v1, Vecteur v2)
{
Vecteur u = new Vecteur(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
return u;
}
使用一个参数并且能够使用您自己的值来实现它的唯一方法是使用非静态方法,如下所示:
public Vecteur somme(Vecteur other)
{
Vecteur u = new Vecteur(this.x + other.x, this.y + other.y, this.z + other.z);
return u;
}
我建议您检查this。 我在下面的课程中添加了两个:
public static class Vecteur {// 3D
public double x;
public double y;
public double z;
public Vecteur (double x,double y,double z )
{
this.x=x;
this.y=y;
this.z=z;
}
public void affichage ()
{
System.out.println("("+x+","+y+","+z);
}
public double norme()
{
return Math.sqrt(x*x+y*y+z*z);
}
public static Vecteur somme(Vecteur v1, Vecteur v2) // he told us to make it static nom matter what
{
Vecteur u = new Vecteur(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z);
return u;
}
public Vecteur somme(Vecteur other)
{
Vecteur u = new Vecteur(this.x + other.x, this.y + other.y, this.z + other.z);
return u;
}
public double produit(Vecteur v)
{
return x*v.x+y*v.y+z*v.z;
}
}
答案 1 :(得分:0)
您正尝试从静态方法访问实例变量,但该方法无效。
有两种方法可以做到这一点: