使用Java中的Book类和TestBook类创建程序

使用Java中的Book类和TestBook类创建程序,java,class,object,Java,Class,Object,我正在尝试创建一个java程序,允许用户进入这本书 数字和程序将显示所选书籍的价格。我已经 创建了book类,但大多数都没有语法错误 可能有逻辑错误,类TestBook有错误 在调用输入时。你能帮助我吗?我迷路了:(这是我的密码: class Book{ String title; String author; double price; int option; //constructor Book(String title, String a

我正在尝试创建一个java程序,允许用户进入这本书 数字和程序将显示所选书籍的价格。我已经 创建了book类,但大多数都没有语法错误 可能有逻辑错误,类TestBook有错误 在调用输入时。你能帮助我吗?我迷路了:(这是我的密码:

class Book{

    String title;
    String author;
    double price;
    int option;

    //constructor
    Book(String title, String author, double newPrice){
        title = title;
        author = author;
        price = newPrice;

    }

    public String getTitle(){
        return title;
    }
    public String getAuthor(){
        return author;
    }
    public double getPrice(){
        return price;
    }
    public int getOption(){
        return option;
    }

    public void setPrice(int option, double price, double newPrice){
        if (option == 1){
            price = 20.00;
            newPrice = price;
        }
        else if (option == 2){
            price = 15.00;
            newPrice = price;
        }
        else if (option == 3){
            price = 23.90;
            newPrice = price;
        }
        else if (option == 4){
            price = 27.30;
            newPrice = price;
        }
        else if (option == 5){
            price = 50.00;
            newPrice = price;
        }
        else if (option == 6){
            price = 13.50;
            newPrice = price;
        }
    }
    public void setOption(int newOption){
        option = newOption;
    }
}
TestBook类

import java.util.Scanner;

public class TestBook{
    public static void main (String[]args){

        Scanner input = new Scanner (System.in);

        //The Book List
        System.out.println("The Book List");
        System.out.println("1)How to do programming 12th Edition by Liang.\n2)Malaysian Food Recipe by Nadia Bt Mahmud.\n3)What is Islam by Ustad Manzoor Malik.\n4)Urban Legend by Christine R.M.\n5)Fundamental of Calculus by Prof. Abu.\n6)How to raise your kids by Salsabila\n");
        System.out.println("Choose your book number to know the price: ");
        int option = input.nextInt();

        Book b1 = new Book(theOption(option);// invoke the option to get the price
        System.out.println("The price is: "+ b1.getPrice);


    }
    //Method option
    public static int theOption(int option){
        return option;
    }
}
您在方法调用中忘记了
()

替换

System.out.println("The price is: "+ b1.getPrice);

除了该错误之外,您正在调用一个不存在的构造函数:

Book b3 = new Book (8));

您的Book构造函数接受3个参数。在该调用中您有一个额外的

您的代码有很多问题

  • 您要求输入一本书,但不要使用switch或if语句来使用该输入。无论用户输入什么,都将始终打印所有三个输出

  • 对于Book对象,您有一个具有两个参数的构造函数,但是当您使用Book b1=new Book(1)调用构造函数时,您只使用一个参数。这将给出一个错误,除非您的构造函数只有一个参数

  • 在SetPrice函数中,您正在隐藏对象的变量,作为Price的本地副本的menas将获得新值,而不是对象的Price副本


  • 还有更多,但这将让您开始。

    您能显示您收到的具体问题/错误吗?您正在使用一个参数调用Book的构造函数,没有看到在共享类中“局部变量的值未使用”这是我测试手册中的错误class@NadhiraRizky将更多细节作为问题的编辑而不是评论发布。Book b1=新书(选项(option));我可以这样调用选项吗?@NadhiraRizky我不知道“调用选项”是什么意思。当您编写新书(…)时,您正在创建一个图书实例。您必须有一个Book构造函数,其参数与您在
    新书(…)
    调用中传递的参数相匹配。
    Book b3 = new Book (8));