请查看一下代码,是否有优化空间
来源:1-7 编程练习
henghu
2019-06-07 22:39:23
public class Book {
// 私有属性:书名、作者、出版社、价格
private String bookname;
private String author;
private String press;
private double price;
// 通过构造方法实现属性赋值
public Book(String bookname, String author, String press, double price) {
this.bookname = bookname;
this.author = author;
setPress(press);
setPrice(price);
}
/*
* 通过公有的get/set方法实现属性的访问,其中: 1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
* 2、限定作者、书名均为只读属性
*/
public String getBookname() {
return this.bookname;
}
public String getAuthor() {
return this.author;
}
public void setPress(String press) {
this.press = press;
}
public String getPress() {
return this.press;
}
public void setPrice(double price) {
if (price < 10) {
System.out.println("你输入的价格无效,价格必须大于10元");
this.price = 10;
} else {
this.price = price;
}
}
public double getPrice() {
return this.price;
}
// 信息介绍方法,描述图书所有信息
Book(String bookname) {
System.out.println("图书价格最低10元");
System.out.println("书名:" + getBookname());
System.out.println("书名:" + getBookname());
// this.print();
}
public void print() {
System.out.println("书名:" + getBookname());
System.out.println("作者:" + getAuthor());
System.out.println("出版社:" + getPress() + "元");
System.out.println("价格:" + getPrice() + "元");
}
}
public class BookTest {
// 测试方法
public static void main(String[] args) {
// 实例化对象,调用相关方法实现运行效果
System.out.println("图书价格最低10元");
Book one = new Book("红楼梦", "曹雪芹", "人民文学出版社", -10);
one.print();
System.out.println("===========================");
Book two = new Book("小李飞刀", "古龙", "中国长安出版社", 55.5);
two.print();
}
}2回答
同学你好,根据贴出代码,有如下的一些修改和优化建议:
1、Book(String bookname){}-->这是另一个构造方法吗

这个方法并没有使用,所以这里可以去掉!
2、这个图书的最低价格的输出语句就在set的方法中,所以在测试类中的输出语句可以不写哦

剩下的的代码符合题目要求,符合本小节中封装的要求哦!
如果我的回答解决了你的问题,请采纳。祝学习愉快。
henghu
提问者
2019-06-07
Book(String bookname) {
System.out.println("图书价格最低10元");
System.out.println("书名:" + getBookname());
System.out.println("书名:" + getBookname());
// this.print();
}
public void print() {
System.out.println("书名:" + getBookname());
System.out.println("作者:" + getAuthor());
System.out.println("出版社:" + getPress() + "元");
System.out.println("价格:" + getPrice() + "元");
}
这几个是多写的,需要删除掉
相似问题