Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在文本编辑器中进行基本Java编码,无法从其他文件创建新对象,尽管它们';“我们在同一个包裹里”;找不到符号“;_Java_Cannot Find Symbol - Fatal编程技术网

在文本编辑器中进行基本Java编码,无法从其他文件创建新对象,尽管它们';“我们在同一个包裹里”;找不到符号“;

在文本编辑器中进行基本Java编码,无法从其他文件创建新对象,尽管它们';“我们在同一个包裹里”;找不到符号“;,java,cannot-find-symbol,Java,Cannot Find Symbol,这段代码编译得很好: Person.java package people; class Person{ private String name; private int age; public Person(String name, int age){ this.name = name; this.age = age; } public String getName(){ return name; } public void setName(S

这段代码编译得很好:

Person.java

package people;

class Person{
    private String name;
    private int age;

public Person(String name, int age){
    this.name = name;
    this.age = age;

}

public String getName(){
    return name;
}

public void setName(String name){
    this.name = name;
}

public int getAge(){
    return age;
}

public void setAge(int age){
    this.age = age;
}

}
这并不是:

controller.java

package people;
public class controller{
    public static void main (String[] args){

        Person mark = new Person();
        mark.setName("Mark");
        mark.setAge(24);

    }
}
我得到了这个编译错误:

C:\Program Files\Java\jdk1.8.0_66\classes\controller.java:7: error: cannot find symbol
        Person mark = new Person();
        ^
  symbol:   class Person
  location: class controller
C:\Program Files\Java\jdk1.8.0_66\classes\controller.java:7: error: cannot find symbol
        Person mark = new Person();
                          ^
  symbol:   class Person
  location: class controller

我对此做了很多研究,但似乎还没弄明白。我是否试图在controller.java文件中错误地实例化对象?谢谢。

您的类
Person
有一个构造函数,它接受两个参数,一个
字符串和一个
int
。但是,您正在尝试使用不带参数的构造函数创建
Person
对象:

Person mark = new Person();
您需要将参数传递给构造函数:

Person mark = new Person("Mark", 24);
当然,在此之后,您不再需要调用
set…()
方法


Java编译器会自动创建一个类中没有参数的构造函数,但前提是您根本没有在类中显式添加任何构造函数。

您的类
Person
有一个构造函数,它接受两个参数,一个
字符串
和一个
int
。但是,您正在尝试使用不带参数的构造函数创建
Person
对象:

Person mark = new Person();
您需要将参数传递给构造函数:

Person mark = new Person("Mark", 24);
当然,在此之后,您不再需要调用
set…()
方法


Java编译器会自动创建一个类中没有参数的构造函数,但前提是您根本没有在类中显式添加任何构造函数。

从源根运行编译器。您必须位于包含与打包机名称匹配的“人员”文件夹的文件夹中

例如。如果当前文件夹为“D:\2\people”,并且您运行

"C:\Program Files (x86)\Java\jdk1.8.0_60\bin\javac.exe" controller.java
然后您将得到您描述的错误

但如果您将当前文件夹更改为“D:\2”并运行


所有这些都将被汇编。别忘了修复构造函数。

从根源代码运行编译器。您必须位于包含与打包机名称匹配的“人员”文件夹的文件夹中

例如。如果当前文件夹为“D:\2\people”,并且您运行

"C:\Program Files (x86)\Java\jdk1.8.0_60\bin\javac.exe" controller.java
然后您将得到您描述的错误

但如果您将当前文件夹更改为“D:\2”并运行


所有这些都将被汇编。别忘了修复构造函数。

编译时是否正确设置了类路径?您需要将其设置为包含文件夹人员(包括已编译人员)的位置。类在编译中是否已将类路径设置为正确的?您需要将其设置为包含文件夹人员(包括已编译人员)的位置。classI也尝试过,我得到了相同的“找不到符号”错误。我所描述的是您必须解决的一个问题。如果您仍然得到错误,那么还有更多错误。一件事是:如果将类放入包中,它们必须位于与包结构匹配的目录中。您的文件必须位于名为
people
的目录中。您引用的命令表明您没有这样做。@Jasper是对的!首先修复你的代码!从Person.java端删除显式构造函数,然后使用
javac Person.java controller.java进行编译。java
我也尝试过,我得到了相同的“找不到符号”错误。我所描述的是您必须解决的一件事。如果您仍然得到错误,那么还有更多错误。一件事是:如果将类放入包中,它们必须位于与包结构匹配的目录中。您的文件必须位于名为
people
的目录中。您引用的命令表明您没有这样做。@Jasper是对的!首先修复你的代码!从Person.java端删除显式构造函数,然后使用
javac Person.java controller.java进行编译。java
我的类路径中有包含“people”文件夹的目录,我是否还需要将“people”文件夹添加到我的类路径中?我的类路径中有包含“people”文件夹的目录,我是否还需要将“人员”文件夹添加到我的类路径?