请问老师我的代码有何地方可以优化?
-----------------BookTest.java部分---------------------------------------------------------------------------
public class BookTest {
// 测试方法
public static void main(String[] args) {
//实例化对象,调用相关方法实现运行效果
System.out.println("图书价格最低10元");
Book bk=new Book();
bk.book("红楼梦","曹雪芹","人民文学出版社",10);
System.out.println("====================================");
bk.book("小李飞刀","古龙","中国长安出版社",55.5);
}
}
------------------Book.java部分-------------------------------------------------------------------------------
public class Book {
//私有属性:书名、作者、出版社、价格
private String name;
private String author;
private String company;
private double price;
//通过构造方法实现属性赋值
public String getName(){
return "书名:"+this.name;
}
public String getAuthor(){
return "作者:"+this.author;
}
public String getCompany(){
return "出版社:"+this.company;
}
public void setPrice(double price){
if(price<=10)this.price=10;
else this.price=price;
}
public double getPrice(){
return this.price;
}
/*通过公有的get/set方法实现属性的访问,其中:
1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
2、限定作者、书名均为只读属性
*/
//信息介绍方法,描述图书所有信息
public void book(String name,String author,String company,double price){
this.name=name;
this.author=author;
this.company=company;
this.price=price;
System.out.println(getName());
System.out.println(getAuthor());
System.out.println(getCompany());
System.out.println("价格:"+getPrice());
}
}
正在回答
上述代码有如下问题:
1)构造方法里只完成属性赋值,更多的业务处理移到其他方法中,比如输出语句等业务逻辑;
2)题目要求“限定图书价格必须大于10,如果无效需进行提示”,所以在setPrice()方法中当if (price <= 10)给出提示信息
3)题目要求,作者、书名为只读,所以出版社需要有set属性
4)添加描述图书所有信息的介绍方法
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7235 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星