麻烦老师检查
public class BookTest { public static void main(String[] args) { Book b1=new Book("红楼梦","曹雪芹","人民文学出版社",9); b1.displayInfor(); System.out.println("=============================="); Book b2=new Book("小李飞刀","古龙","中国长安出版社",55.5); b2.displayInfor(); } } public class Book { private String name; private String author; private String press; private double price; public String getName() { return name; } public String getAuthor() { return author; } public String getPress() { return press; } public double getPrice() { return price; } public Book(String name, String author, String press,double price) { this.name=name; this.author=author; this.press=press; this.price=price; if (price<10) { System.out.println("图书价格最低10元"); price=10; } this.price=price; } public void displayInfor(){ System.out.println("书名:"+name+"\n"+"作者:"+author+"\n"+"出版社:"+press+"\n"+"价格:"+price); } }
2
收起
正在回答
2回答
同学你好,运行贴出代码,整体完成不错,但是还有以下优化的空间:
1、同学在构造方法中对价格进行了校验,这里老师建议同学将构造方法中的去掉,将价格的校验保存在set方法中,例如:
2、去掉之后,同学在构造方法中调用setPrice(double price)方法对价格赋值即可
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕小班
2019-11-20 10:01:54
同学你好,1、在构造方法中可以做校验,这是没有错误的。上面的修改内容,只是老师的建议。
2、根据题目要求,实现get/set方法实现对属性的访问、修改,对应我们要添加对price等属性的get/set方法。
3、set方法是给属性赋值,当我们需要对类中的某个属性进行单独的赋值或修改时,同样需要添加对接收属性的内容进行判断,比如:当我们需要对这个图书对象的价格进行修改时,调用它的set方法,同样需要对属性进行判断不能低于10。
综上所述,我们可以将属性的判断赋值内容写在set方法中,然后在构造方法里调用,这样会更符合封装的特性。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星