Java 错误:找不到符号(坐标)
以下是我重新编写的新代码: ThreeDPoint.javaJava 错误:找不到符号(坐标),java,Java,以下是我重新编写的新代码: ThreeDPoint.java public class ThreeDPoint{ private double x, y, z; public threeDPoint(){ coordX=0; coordY=0; coordZ=0; } public threeDPoint(double x, double y, double z){ coordX = x; coordY = y; coordZ = z; }
public class ThreeDPoint{
private double x, y, z;
public threeDPoint(){
coordX=0;
coordY=0;
coordZ=0;
}
public threeDPoint(double x, double y, double z){
coordX = x;
coordY = y;
coordZ = z;
}
public double getCoord(double x, double y, double z){
return coordX;
return coordY;
return coordZ;
}
}
Main.java
import java.util.Scanner;
公共班机{
double coordX, coordY, coordZ;
public static void main(String[] args){
threeDPoint myThreeDPoint=new threeDPoint();
Scanner sc=new Scanner(System.in);
String coordX, coordY, coordZ;
System.out.println("Input Coordinate X");
myThreeDPoint.coordX(sc.nextDouble());
System.out.println("Input Coordinate Y");
myThreeDPoint.coordY(sc.nextDouble());
System.out.println("Input Coordinate Z");
myThreeDPoint.coordZ(sc.nextDouble());
}
}
它给了我这些错误:
生成输出:
C:\Users\BurneySoo\Documents\Main.java:8:错误:找不到符号
threeDPoint myThreeDPoint=新的threeDPoint();
^
符号:三点类
地点:班主
C:\Users\BurneySoo\Documents\Main.java:8:错误:找不到符号
threeDPoint myThreeDPoint=新的threeDPoint();
^
符号:三点类
地点:班主
2个错误
一般产出:
错误:无法找到或加载主类main
我做错了什么
非常感谢Gagandeep的代码。不知怎么的,我试过了,但它比我以前犯的错误要多 C:\Users\BurneySoo\Documents\ThreeDPoint.java:5:错误:方法声明无效;需要返回类型
public threeDPoint(){
^
public threeDPoint(double x, double y, double z){
^
C:\Users\BurneySoo\Documents\ThreeDPoint.java:11:错误:方法声明无效;需要返回类型
public threeDPoint(){
^
public threeDPoint(double x, double y, double z){
^
C:\Users\BurneySoo\Documents\Main.java:14:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量myTreeDPoint
地点:班主
C:\Users\BurneySoo\Documents\Main.java:17:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量myTreeDPoint
地点:班主
C:\Users\BurneySoo\Documents\Main.java:20:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量myTreeDPoint
地点:班主
C:\Users\BurneySoo\Documents\Main.java:22:错误:无法从静态上下文引用非静态变量coordY
myThreeDPoint.setCoord(coordX, coordY, coordZ);
^
myThreeDPoint.setCoord(coordX, coordY, coordZ);
^
C:\Users\BurneySoo\Documents\Main.java:22:错误:无法从静态上下文引用非静态变量coordZ
myThreeDPoint.setCoord(coordX, coordY, coordZ);
^
myThreeDPoint.setCoord(coordX, coordY, coordZ);
^
C:\Users\BurneySoo\Documents\Main.java:22:错误:类3dpoint中的方法setCoord无法应用于给定类型
myThreeDPoint.setCoord(coordX, coordY, coordZ);
^
要求:双人,双人,双人
找到:字符串,双精度,双精度
原因:无法通过方法调用转换将实际参数字符串转换为double
C:\Users\BurneySoo\Documents\ThreeDPoint.java:6:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量coordX
地点:三点类
C:\Users\BurneySoo\Documents\ThreeDPoint.java:7:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量坐标
地点:三点类
C:\Users\BurneySoo\Documents\ThreeDPoint.java:8:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量coordZ
地点:三点类
C:\Users\BurneySoo\Documents\ThreeDPoint.java:12:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量coordX
地点:三点类
C:\Users\BurneySoo\Documents\ThreeDPoint.java:13:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量坐标
地点:三点类
C:\Users\BurneySoo\Documents\ThreeDPoint.java:14:错误:找不到符号
myTreeDPoint.coordX(sc.nextLine());
^
myTreeDPoint.coordY(sc.nextLine());
^
myTreeDPoint.coordZ(sc.nextLine());
^
coordX=0;
^
coordY=0;
^
coordZ=0;
^
coordX = x;
^
coordY = y;
^
coordZ = z;
^
符号:变量coordZ
地点:三点类
14个错误
它仍然不会提示我在常规输出中输入坐标X。
它只给了我:
错误:无法找到或加载主类main这里的问题是您没有调用构造函数,而是试图调用方法 为threeDPoint类创建一个构造函数,然后使用setter设置字段coordX。你不能打电话
threeDPoint myThreeDPoint=new coordX();
因为这是一个方法,而不是构造函数。您需要的是三点类a构造函数,如下所示:
public threeDPoint(args){
//dostuff
}
然后是一个二传手,让你像
public void setCoordx(double coordx){
this.coordx = coordx}
此外,在数据隐藏方面,请确保将字段作为私有或受保护的字段进行删除
protected double coordX;
你必须写作
threeDPoint myThreeDPoint=new threeDPoint("Send Arguments Here");
在main方法中,要创建一个对象,现在使用这个对象,您必须访问您的方法myThreeDPoint.coordX(11.11)代码>
将您的ThreeDPoint
类更改为:
public class ThreeDPoint
{
private double x, y, z;
public ThreeDPoint()
{
this.x = 0;
this.y = 0;
this.z = 0;
}
public ThreeDPoint(double x, double y, double z)
{
this.x = x;
this.y = y;
this.z = z;
}
public double getCoordX()
{
return this.x;
}
public double getCoordY()
{
return this.y;
}
public double getCoordZ()
{
return this.z;
}
}
现在将该类的对象设为
ThreeDPoint myThreeDPoint = new ThreeDPoint();
因此,您的主类将如下所示:
import java.util.Scanner;
public class Main
{
double coordX, coordY, coordZ;
public static void main(String[] args)
{
ThreeDPoint myThreeDPoint = new ThreeDPoint();
Scanner sc=new Scanner(System.in);
String coordX, coordY, coordZ;
System.out.println("Input Coordinate X");
coordX = sc.nextDouble();
System.out.println("Input Coordinate Y");
coordY = sc.nextDouble();
System.out.println("Input Coordinate Z");
coordZ = sc.nextDouble();
// This will initialize your Constructor with Arguments.
ThreeDPoint myThreeDPointArgConst = new ThreeDPoint(coordX, coordY, coordZ);
coordX = myThreeDPointArgConst.getCoordX();
System.out.println("Co-ordinate X is : " + coordX);
coordY = myThreeDPointArgConst.getCoordY();
System.out.println("Co-ordinate Y is : " + coordY);
coordZ = myThreeDPointArgConst.getCoordZ();
System.out.println("Co-ordinate Z is : " + coordZ);
// This will initialize the no-arg constructor.
ThreeDPoint myThreeDPoint = new ThreeDPoint();
coordX = myThreeDPoint.getCoordX();
System.out.println("Co-ordinate X is : " + coordX);
coordY = myThreeDPoint.getCoordY();
System.out.println("Co-ordinate Y is : " + coordY);
coordZ = myThreeDPoint.getCoordZ();
System.out.println("Co-ordinate Z is : " + coordZ);
}
}
您是否正在尝试将coordX设置为在main中获得的值?请务必学习Java命名约定,类名必须以Pascal大小写,即第一个字母大写,后面的每个单词都以大写字母开头,变量名应以Camel大小写,也就是说,小写字母的第一个字母和其后单词的每个第一个字母都大写:-)卢卡斯:是的。Main.java将是我输入坐标的地方。@burneyjsoo:请参阅我的最新编辑,希望这将在以下方面对您有所帮助:-)我已经更新了我的最新编码,在旧编码的上面,下面。我仍然有错误,它不再允许我输入坐标x。取而代之的是,它给了我错误。我做错了什么?查看类的名称ThreeDPoint
您将其更改为Pascal大小写
,但您忘记重命名构造函数
,它们类似于ThreeDPoint
,因此它们没有引用构造函数,因此将它们写成public ThreeDPoint(){coordX=0;coordY=0;coordZ=0;}