当我使用“ public void main()”时为什么会出错?

时间:2018-08-07 15:03:58

标签: java methods main

好的,所以基本上我是由老师给我上课的,我在做任何事情时都遇到了麻烦。我最初收到的代码根本没有运行,它说找不到主类。因此,我决定添加public void main(String[] args) {,当我执行大多数方法时,它们变成红色,并且即使以前没有任何错误,该代码现在也出现了20个错误(尽管代码不完整,它不应该包含此时有任何错误)。

我不确定它到底出了什么问题,我需要能够运行代码以确保以后需要按计划添加的内容。即使它的类工作可以得到评估,所以如果有人知道为什么在正确添加主构造函数后会出现大量错误(我相信这就是它们的名字)。

 public class Book {
    public String bookID;
    public String title;
    public String author;
    public String borrowerID;

    public void main(String[] args) {


    public String getTitle() {
        return title;
    }

    public String getBookID() {
        return bookID;
    }

    public String getAuthor() {
        return author;
    }

    public String getBorrowerID() {
        return borrowerID;
    }

    public boolean returnBook() {
        // if borrower ID has been set (ie. book has been borrowed)
        if (this.borrowerID != null) {
            // reset borrowerID to null and return true result
            this.borrowerID = null;
            return true;
        } else {
            // otherwise book is not currently borrowed so return false result
            return false;
        }
    }



    // format Book details to a String (useful for printing!)
    public String toString() {
        return String.format("Book ID: %s\nTitle: %s\nAuthor: %s\nBorrowed by: %s\n", this.bookID, this.title,
                this.author, this.borrowerID != null ? this.borrowerID : "Available");
    }
    }
}

2 个答案:

答案 0 :(得分:1)

这些单类程序的一般经验法则-它们的格式通常如下

<Start classname> 
     <Start main methodname>
           <action code>
           <access external methods here>
     </End main method>

     <Start method 1>
           <action code>
     </End method 1>

     <Start method 2>
          <action code>
     <End method 2>
     etc....
<Close class>

编辑:我想在这种情况下我还应该提到方法可以从其动作代码中调用其他外部方法。假设您已导入正确的包/类,则这包括其他类中的方法。例如:

<start method 1>
    method2();
</end method 1>

<start method 2>
   <action code>  
</end method 2>  

在这种情况下,调用方法1将调用方法2的操作代码。这里还有另一种蠕虫病毒,但这对您入门很有帮助。

答案 1 :(得分:0)

您的代码中出现了

  • main中缺少static关键字

  • 在主方法中创建的方法

  • main执行时不编写逻辑

  • 如果要在main内部调用returnBook方法,则应声明静态

  • 如果将除main方法之外的其余代码移动到其他某个类,则可以创建实例并调用该方法。

解决了以下课程中的上述问题。

public class Book {

public static void main(String[] args) {
    boolean result = returnBook();
    System.out.println(result);
}

public String bookID;
public String title;
public String author;
public static String borrowerID;

public String getTitle() {
    return title;
}

public String getBookID() {
    return bookID;
}

public String getAuthor() {
    return author;
}

public String getBorrowerID() {
    return borrowerID;
}

public static boolean returnBook() {
    // if borrower ID has been set (ie. book has been borrowed)
    if (borrowerID != null) {
        // reset borrowerID to null and return true result
        borrowerID = null;
        return true;
    } else {
        // otherwise book is not currently borrowed so return false result
        return false;
    }
}

// format Book details to a String (useful for printing!)
public String toString() {
    return String.format("Book ID: %s\nTitle: %s\nAuthor: %s\nBorrowed by: %s\n", this.bookID, this.title,
                         this.author, this.borrowerID != null ? this.borrowerID : "Available");
}

}