首页 新闻 会员 周边

java中无法调用方法

0
悬赏园豆:50 [已解决问题] 解决于 2019-06-20 22:33

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

ccccc三的主页 ccccc三 | 初学一级 | 园豆:5
提问于:2019-06-19 21:30
< >
分享
最佳答案
0

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();
}

}

收获园豆:30
小光 | 小虾三级 |园豆:1766 | 2019-06-20 09:03

好的,谢谢

ccccc三 | 园豆:5 (初学一级) | 2019-06-20 22:31
其他回答(2)
0

你的 one twe两个实例不能在 BookText这个类里面定义。这两个实例,必须在方法里面

收获园豆:10
YichengLiu | 园豆:204 (菜鸟二级) | 2019-06-19 22:29

好的,谢谢

支持(0) 反对(0) ccccc三 | 园豆:5 (初学一级) | 2019-06-20 22:32
0

试试在BookText里面写一个main方法 再把那四行代码放进去

收获园豆:10
超级VIP | 园豆:212 (菜鸟二级) | 2019-06-19 22:35

好的,谢谢

支持(0) 反对(0) ccccc三 | 园豆:5 (初学一级) | 2019-06-20 22:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册