我正在尝试用Java编译一个简单的类,但无法解决错误的含义。我是Java的新手。
错误是:
Book.java:1: error: '{' expected
public class Book(String bookName)
^
码
public class Book(String bookName)
{
private String name;
private String price;
public Book()
{
name = bookName;
Random r = new Random();
int lowPrice = 10;
int highPrice = 100;
price = r.nextInt(highPrice - lowPrice) + lowPrice;
}
}
答案 0 :(得分:5)
你的课被错误地宣布了。您需要从类构造函数的声明中删除class
声明符。
java中不允许使用您的类声明public class Book(String bookName)
。您需要将其更改为public class Book
Random#nextInt(...)
不返回String,返回int。将String price
更改为int price
试试这个:
public class Book {
private String name;
private int price;
public Book(String bookName) {
name = bookName;
Random r = new Random();
int lowPrice = 10;
int highPrice = 100;
price = r.nextInt(highPrice - lowPrice) + lowPrice;
}
}
答案 1 :(得分:3)
这个
public class Book(String bookName)
{
应该是
public class Book
{
或者你必须创建一个单独的参数化构造函数
public class Book
{
private String name;
private String price;
public Book(String bookName){
//.. code
name = bookName;
}
public Book()
{
//name = bookName;
Random r = new Random();
int lowPrice = 10;
int highPrice = 100;
price = r.nextInt(highPrice - lowPrice) + lowPrice;
}
}
答案 2 :(得分:2)
这个班级声明:
public class Book(String bookName)
Java中不允许这样做。
也许你的意思是创建一个像这样的构造函数:
public class Book {
//...
public Book(String bookName) {
this.name = bookName;
}
//...
}
其他问题
Random::nextInt
返回int
而不是String
,因此声明
private String price;
应为private int price;
。最后我假设您的代码应如下所示:
public class Book {
private @Getter @Setter String name;
private @Getter @Setter int price;
public Book(String bookName) {
this.name = bookName;
}
public Book() {
Random r = new Random();
int lowPrice = 10;
int highPrice = 100;
price = r.nextInt(highPrice - lowPrice) + lowPrice;
}
}
看看这个:
答案 3 :(得分:1)
更改了类声明并添加了Main方法
public class Book {
private String name;
private String price;
public Book(String bookName)
{
this.name = bookName;
Random r = new Random();
int lowPrice = 10;
int highPrice = 100;
this.price = r.nextInt(highPrice - lowPrice) + lowPrice;
}
public void printBookDetails(){
System.out.println("The book "+this.name + "is for "+ this.price +"dollars");
}
public static void main(String [] args){
Book book =new Book("MyBook");
book.printBookDetails();
}
}
答案 4 :(得分:0)
公共课书{
private String name;
Book(String bookName)
{
this.name = bookName;
}
public static void main(String[] args){
int price;
int lowPrice = 10;
int highPrice = 100;
price =(highPrice - lowPrice) + lowPrice;
System.out.println(price);
}
}