java项目正在使用构造函数,但无法运行

java项目正在使用构造函数,但无法运行,java,constructor,Java,Constructor,我试图学习构造函数是如何工作的,我一直在尝试调试这个简单的java程序,但我无法让它运行。EclipseSimple拒绝承认它的存在,只是运行一个早期的项目。任何想法都会得到非常感激的接受——我很难看出我做错了什么 package timber; public class Person { private String firstName; private String lastName; private String address; private String userna

我试图学习构造函数是如何工作的,我一直在尝试调试这个简单的java程序,但我无法让它运行。EclipseSimple拒绝承认它的存在,只是运行一个早期的项目。任何想法都会得到非常感激的接受——我很难看出我做错了什么

package timber;



public class Person {

 private String firstName;
 private String lastName;
 private String address;
 private String username;


 public Person(String personFirstName, String personLastName, String personAddress, String personUsername)
 {
 firstName = personFirstName;
 lastName = personLastName;
 address = personAddress;
 username = personUsername;
 }


 public void displayPersonDetails()
 {
 System.out.println("Name: " + firstName + " " + lastName);
 System.out.println("Address: " + address);
 System.out.println("Username: " + username);
 }





 }
然后我有一个包含main方法的第二个类

package timber;

 public class PersonExample {



     public void main(String[] args) {

     Person dave = new Person("Dave", "Davidson", "12 Main St.", "DDavidson");
     dave.displayPersonDetails();

     }
     }

您的主方法始终需要是静态的

取代

public void main(String[] args)


您的主方法必须是“静态的”。为什么?如果您想在Java中调用方法,有两种方法

  • 创建类的实例并使用该对象调用其方法
  • 将方法设为“static”,这样就可以使用类名调用该方法,而无需创建实例
  • “main”方法,如果是非静态的(就像在您的例子中),则必须创建要调用的类的实例。但是,您将在何处创建该类的实例,即您的主方法所在的位置?创建另一个类并从那里调用?创建另一个类来调用这个类?它永远不会结束。我的意思是必须有一个起点,对吗

    通过将该方法命名为“main”,并在其签名中添加关键字“static”,可以帮助JVM调用该方法,而无需创建实例

    换衣服

    public void main(String[] args)
    


    一切都很好,您刚刚错过了static关键字。 而不是

    public void main(String [] args)
    
    使用


    您必须检查绿色运行按钮中的设置,并将其更改为当前项目。在运行它之前,还要确保您正在保存项目。在这种罕见的情况下,eclipse的屏幕截图会很有帮助。请尝试“运行>运行方式>Java应用程序”谢谢-这是一个愚蠢的错误,但我欢迎您的快速响应。新年快乐!我很高兴。给这个答案投赞成票,这样它将帮助其他学习者!
    public void main(String[] args)
    
    public static void main(String[] args)
    
    public void main(String [] args)
    
    public static void main(String[] args)