ไม่พบสัญลักษณ์ [ซ้ำ]

คลาส CalculatorDemo1

package calc;
public class CalculatorDemo1{
  public static void main(String args){
    int integer1 = 1;
    int integer2 = 2;
    Calculator a = new Calculator(integer1, integer2);
    a.sum();

  }
}

ชั้นเรียนเครื่องคิดเลข

package calc;

public class Calculator{
  int left, right;

  public Calculator(int left, int right){
    this.left = left;
    this.right = right;

  }
  public void sum(){
    System.out.println(this.left + this.right);
  }
}

ดังนั้นรหัสเหล่านี้จึงมีอยู่ในไฟล์ต่างๆ ฉันพยายามรวบรวมสองไฟล์นี้ อันหนึ่งมีคอนสตรัคเตอร์คอมไพล์ แต่อีกอันไม่มี และมันคายข้อผิดพลาดเหล่านี้ออกมา

CalculatorDemo1.java:6: error: cannot find symbol
    Calculator a = new Calculator(integer1, integer2);
    ^
  symbol:   class Calculator
  location: class CalculatorDemo1
CalculatorDemo1.java:6: error: cannot find symbol
    Calculator a = new Calculator(integer1, integer2);
                       ^
  symbol:   class Calculator
  location: class CalculatorDemo1
2 errors

ฉันไม่คิดว่านี่เป็นปัญหาของประเภทการคืนสินค้า มันไม่ได้แก้ไขปัญหา นอกจากนี้ ฉันตรวจสอบตัวระบุของฉันว่าฉันสะกดผิดหรือไม่ แต่ไม่มีสิ่งใดเลย ฉันไม่พบคำตอบจากคำถามที่พบบ่อยเช่นกัน ฉันควรแก้ไขปัญหานี้อย่างไร?


person Chan    schedule 26.05.2020    source แหล่งที่มา
comment
คุณอาจไม่ได้เพิ่มคลาส Calculator ให้กับ classpath ลองเพิ่มด้วยตัวเลือก cp   -  person user    schedule 26.05.2020
comment
ฉันไม่แน่ใจว่าปัญหาเกี่ยวข้องกับ @us ปัญหายังเกี่ยวข้องกับการประกาศคอนสตรัคเตอร์ของคุณด้วย   -  person User8500049    schedule 26.05.2020
comment
คุณใช้คำสั่งอะไรในการคอมไพล์โค้ดของคุณ? จากสถานที่ไหน?   -  person Pshemo    schedule 26.05.2020
comment
javac Calculator.java และ javac CalculatorDemo1.java และ Calculator.java คอมไพล์แล้ว แต่ javac CalculatorDemo1.java ทำให้เกิดข้อผิดพลาดข้างต้น ฉันแก้ไขปัญหา Constructor มาระยะหนึ่งแล้ว แต่ก็ยังใช้งานไม่ได้   -  person Chan    schedule 27.05.2020
comment
ไดเร็กทอรีปัจจุบันของคอนโซลถูกตั้งค่าเป็นโฟลเดอร์ calc หรือไม่ คอมไพเลอร์ (javac) จำเป็นต้องทราบตำแหน่งของ แพ็คเกจ ที่เก็บคลาสที่คุณใช้อยู่ คุณตั้งค่าด้วยพารามิเตอร์ -classpath หรือ -cp ดังนั้น หากคุณอยู่ใน calc คุณสามารถลองใช้ javac -cp .. CalculatorDemo1.java หรือย้ายหนึ่งไดเรกทอรีด้านบนแล้วโทร javac -cp . calc/CalculatorDemo1.java   -  person Pshemo    schedule 27.05.2020
comment
คุณอาจกำลังสร้างไม่ถูกต้อง เมื่อฉันทำ build อย่างถูกต้อง โค้ดก็จะคอมไพล์ (มันไม่ทำงานเพราะคุณยังมีข้อผิดพลาดในโค้ด แต่คุณสามารถแก้ไขได้ด้วยตัวเองเมื่อทำสำเร็จ!)   -  person Stephen C    schedule 27.05.2020
comment
จะเกิดอะไรขึ้นถ้าฉันลบ package calc และใส่สองไฟล์นี้พร้อมกับโฟลเดอร์ชื่อ Java? ฉันจำเป็นต้องพูดถึงแพ็คเกจเพื่อให้แน่ใจว่ามีความสัมพันธ์กันหรือไม่?   -  person Chan    schedule 27.05.2020
comment
อย่าสร้างคลาสที่ไม่มีแพ็คเกจเลย หากคุณต้องการกระจายคลาสเช่นไฟล์ Jar และคุณต้องการใช้ Jar นั้นในโปรเจ็กต์อื่นของคุณ คุณจะไม่สามารถ import คลาสดังกล่าวที่นั่นได้   -  person Pshemo    schedule 27.05.2020


คำตอบ (1)


ปัญหาที่เกี่ยวข้องกับการประกาศคอนสตรัคเตอร์ของคุณ ตัวสร้างไม่มีประเภทการคืนสินค้า ดังนั้นวิธีคำนวณของคุณจึงไม่ใช่ตัวสร้าง เมื่อคุณลองสร้างอินสแตนซ์

Calculator c = new Calculator(5,7);//can't find true ctor.
Calculator c1 = new Calculator();//it is ok
public  void Calculator(int left, int right){ //delete void
    this.left = left;
    this.right = right;
}
person User8500049    schedule 26.05.2020
comment
ฉันลบมันไปแล้ว แต่ก็ยังทำให้เกิดปัญหาอยู่ - person Chan; 26.05.2020
comment
CalculatorDemo1.java:6: ข้อผิดพลาด: ไม่พบสัญลักษณ์ เครื่องคิดเลข a = เครื่องคิดเลขใหม่(integer1, integer2); ^ สัญลักษณ์: คลาส เครื่องคิดเลข ตำแหน่ง: คลาส CalculatorDemo1 CalculatorDemo1.java:6: ข้อผิดพลาด: ไม่พบสัญลักษณ์ เครื่องคิดเลข a = เครื่องคิดเลขใหม่(จำนวนเต็ม1, จำนวนเต็ม2); ^ สัญลักษณ์: คลาส เครื่องคิดเลข ตำแหน่ง: คลาส CalculatorDemo1 2 ข้อผิดพลาด Chanwooui-MBP:java chanwookim$ - person Chan; 26.05.2020