Java 错误:找不到符号(坐标)

Java 错误:找不到符号(坐标),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; }

以下是我重新编写的新代码:

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 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;}