2012-03-16 114 views
0

這裏是新的編碼,我重新做:錯誤:無法找到符號(座標)

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:\用戶\ BurneySoo \文檔\ Main.java:8:錯誤:無法找到符號 threeDPoint myThreeDPoint =新threeDPoint(); ^ symbol:class threeDPoint location:class Main C:\ Users \ BurneySoo \ Documents \ Main.java:8:error:找不到符號 threeDPoint myThreeDPoint = new threeDPoint(); ^ 符號:類threeDPoint 位置:類主要 2個錯誤

通用輸出: 錯誤:無法找到或加載主類主要

我在做什麼錯?


非常感謝代碼Gagandeep。不知何故,我嘗試了他們,但它給出了比以前更多的錯誤。

C:\ Users \ BurneySoo \ Documents \ ThreeDPoint.java:5:錯誤:無效的方法聲明;返回類型

public threeDPoint(){ 
    ^

C:\ Users \ BurneySoo \ Documents \ ThreeDPoint.java:11:錯誤:無效的方法聲明;返回類型需要

public threeDPoint(double x, double y, double z){ 
    ^

C:\用戶\ BurneySoo \文件\ Main.java:14:錯誤:找不到符號

myTreeDPoint.coordX(sc.nextLine()); 
^ 

符號:可變myTreeDPoint 位置:類主要

C:\ Users \ BurneySoo \ Documents \ Main.java:17:錯誤:找不到符號

myTreeDPoint.coordY(sc.nextLine()); 
^ 

symbol:variable myTreeDPoint location:class Main

C:\ Users \ BurneySoo \ Documents \ Main。的java:20:錯誤:找不到符號

myTreeDPoint.coordZ(sc.nextLine()); 
^ 

符號:可變myTreeDPoint 位置:類主要

C:\用戶\ BurneySoo \文件\ Main.java:22:錯誤:非靜態變量coordY不能從靜態上下文引用

myThreeDPoint.setCoord(coordX, coordY, coordZ); 
          ^

C:\用戶\ BurneySoo \文件\ Main.java:22:錯誤:非靜態變量coordZ不能從靜態上下文引用

myThreeDPoint.setCoord(coordX, coordY, coordZ); 
            ^

C:\ Users \ BurneySoo \ Documents \ Main.java:22:error:方法setCoord在類ThreeDPoint中不能應用於給定的類型;

myThreeDPoint.setCoord(coordX, coordY, coordZ); 
      ^

需要:雙,雙,雙 發現:字符串,雙,雙 原因:實際參數字符串不能被轉換通過方法調用轉換

C至一倍:\用戶\ BurneySoo \文件\ ThreeDPoint.java:6:錯誤:無法找到符號

coordX=0; 
    ^

符號:變量coordX 位置:類ThreeDPoint

C:\用戶\ BurneySoo \文件\ ThreeDPoint.java:7:錯誤:找不到符號

coordY=0; 
    ^

符號:可變coordY 位置:類ThreeDPoint

C:\用戶\ BurneySoo \文件\ ThreeDPoint.java:8:錯誤:無法找到符號

coordZ=0; 
    ^

符號:變量coordZ 位置:類ThreeDPoint

C:\用戶\ BurneySoo \文件\ ThreeDPoint.java:12:錯誤:找不到符號

coordX = x; 
    ^

符號:可變coordX 位置:類ThreeDPoint

C:\用戶\ BurneySoo \文件\ ThreeDPoint.java:13:錯誤:無法找到符號

coordY = y; 
    ^

符號:變量coordY 位置:類ThreeDPoint

C:\用戶\ BurneySoo \文檔\ ThreeDPoint.java:14:錯誤:無法找到符號

coordZ = z; 
    ^

符號:變量coordZ 位置:類ThreeDPoint

14個錯誤

,它仍然不會提示我在一般輸出中輸入座標X. 它只是給了我:

錯誤:無法找到或加載主類主要

+0

你們是不是要coordX設爲您的主要獲取的價值? – Lucas 2012-03-16 08:23:16

+0

請務必學習Java命名約定,類名必須在Pascal Case中,即第一個字母大寫,每個後續單詞以大寫字母開頭,變量名應該在Camel Case中,即小寫的第一個字母和第一個字母隨後的單詞是大寫:-) – 2012-03-16 08:32:20

+0

盧卡斯:是的。 Main.java將會是我輸入座標的地方。 – burneyjsoo 2012-03-16 09:42:09

回答

0

這裏的問題是,你是不是調用構造函數,你要調用的方法。

爲您的threeDPoint類構造一個構造函數,然後使用setter來設置字段coordX。你不能撥打

threeDPoint myThreeDPoint=new coordX(); 

因爲這是一種方法,而不是一個構造函數。你需要的是在你的threeDPoint類的構造函數,像這樣:

public threeDPoint(args){ 
//dostuff 
} 

,然後二傳手設置你的COORDS像

public void setCoordx(double coordx){ 
this.coordx = coordx} 

此外,作爲數據隱藏的問題,確保delcare您字段爲私有或受保護的。

protected double coordX; 
0

你必須寫

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);   
    } 
} 
+0

我已經更新了我的最新編碼,低於舊編碼。我仍然有錯誤,它不會讓我輸入座標x了。相反,它改變了我的錯誤。我究竟做錯了什麼? – burneyjsoo 2012-03-16 09:36:56

+0

查看你的班級'ThreeDPoint'的名字,你把它改成了'Pascal Case',但是你忘了重命名你的'constructors',它們就像'threeDPoint',因此它們沒有引用構造函數,因此把它們寫成'public ThreeDPoint(){ coordX = 0; coordY = 0; coordZ = 0; }' – 2012-03-16 09:42:16