public class Book {
private String bookname,author,press;
private double money;
//通过构造方法实现属性赋值
public Book(String bookname,String author,String press,double money){
this.bookname=bookname;
this.author=author;
this.setpress(press);
this.setmoney(money);
}
/*通过公有的get/set方法实现属性的访问,其中:
1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
2、限定作者、书名均为只读属性
*/
public String getbookname(){
return bookname;
}
public String getauthor(){
return author;
}
public void setpress(String press){
this.press=press;
}
public String getpress(){
return press;
}
public void setmoney(double money){
if(this.money<10){
System.out.println("图书价格最低10元");
money=10;
}
else this.money=money;
}
public double getmoney() {
return money;
}
//信息介绍方法,描述图书所有信息
public void show(){
System.out.println("书名:"+this.getbookname());
System.out.println("作者:"+this.getauthor());
System.out.println("出版社:"+this.getpress());
System.out.println("价格:"+this.getmoney()+"元");
System.out.println("=======================================");
}
}
public class BookText {
Book one=new Book("红楼梦","曹雪芹","人民文学出版社",5);
Book two=new Book("小李飞刀","古龙","中国长安出版社",55.5);
one.show();
two.show();
}
在调用show()方法时出现报错,Syntax error on token "show", Identifier expected after this token
one.show();
two.show();
这两个方法执行要放在方法里面,你声明个方法放进去调用这个方法执行就行了,
就像System.out.println("书名:"+this.getbookname());这个方法一样,你放在方法外打印也会报错的,这是java的语法,除了静态方法其他方法调用都要在方法中。
另外你的两个对象的创建
Book one=new Book("红楼梦","曹雪芹","人民文学出版社",5);
Book two=new Book("小李飞刀","古龙","中国长安出版社",55.5);
也应该放在方法中,在方法外的变量是属于类的,对象放在方法外要加上static关键字,例如:
public class Test1 {
static Test one=new Test("红楼梦","曹雪芹","人民文学出版社",5);
static Test two=new Test("小李飞刀","古龙","中国长安出版社",55.5);
public static void main(String[] args) {
one.show();
two.show();
}
}
这样写虽然没问题在程序加载时就会初始化对象,影响程序初始化时间,正确的写法应该是这样:
public class Test1 {
public static void main(String[] args) {
Test one=new Test("红楼梦","曹雪芹","人民文学出版社",5);
Test two=new Test("小李飞刀","古龙","中国长安出版社",55.5);
one.show();
two.show();
}
}
好的,谢谢
你的 one twe两个实例不能在 BookText这个类里面定义。这两个实例,必须在方法里面
好的,谢谢
试试在BookText里面写一个main方法 再把那四行代码放进去
好的,谢谢