老师帮忙看下1-7练习的编码是否正确
来源:1-7 编程练习
星星和猫看月亮
2019-08-29 00:20:34
package com.imooc.book;
public class Book {
// 私有属性:书名、作者、出版社、价格
private String bookName, author, publishHouse;
double price;
// 通过构造方法实现属性赋值
public String demo() {
this.bookName = "小李飞刀";
this.author = "古龙";
this.publishHouse = "中国长安出版社";
this.price = 55.5;
String s = "书名:" + bookName + "\n作者:" + author + "\n出版社:" + publishHouse + "\n价格:" + price;
return s;
}
/*
* 通过公有的get/set方法实现属性的访问,其中: 1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10 2、限定作者、书名均为只读属性
*/
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPublishHouse() {
return publishHouse;
}
public void setPublishHouse(String publishHouse) {
this.publishHouse = publishHouse;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
if (price <= 10) {
System.out.println("图书价格最少10元");
price = 10.0;
}
this.price = price;
}
}
package com.imooc.book;
public class TestBook {
public static void main(String[] args) {
// //实例化对象,调用相关方法实现运行效果
Book book1=new Book();
book1.setBookName("红楼梦");
book1.setAuthor("曹雪芹");
book1.setPublishHouse("人民出版社");
book1.setPrice(3);
System.out.println("书名:"+book1.getBookName());
System.out.println("作者:"+book1.getAuthor());
System.out.println("出版社:"+book1.getPublishHouse());
System.out.println("价格:"+book1.getPrice());
System.out.println("=====================");
System.out.println(book1.demo());
}
}
1回答
好帮手慕酷酷
2019-08-29
同学你好,代码的思路很棒!但是在实现上还有些问题:
1、根据题目要求设计构造函数实现对属性赋值,同学的代码中没有实现有参构造函数。构造方法应该是方法名与类名相同,并且无返回类型的。
2、实现信息介绍方法描述图书所有信息的方法不正确。
3、根据题目要求,限定作者、书名均为只读属性,所以应该将setAuthor()方法和setPrice()方法删除
4、Book类中的price属性应该设置为private私有的。
5、测试方法中直接使用创建对象为属性赋值即可
修改后的代码如下:
Book
public class Book { // 私有属性:书名、作者、出版社、价格 private String bookName, author, publishHouse; private double price; // 通过构造方法实现属性赋值 public Book(String bookName, String author, String publishHouse, double price) { this.bookName = bookName; this.author = author; this.setPublishHouse(publishHouse); this.setPrice(price); } /* * * 通过公有的get/set方法实现属性的访问,其中: 1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10 2、限定作者、书名均为只读属性 * */ public String getBookName() { return bookName; } public void setBookName(String bookName) { this.bookName = bookName; } public void setAuthor(String author) { this.author = author; } public String getPublishHouse() { return publishHouse; } public void setPublishHouse(String publishHouse) { this.publishHouse = publishHouse; } public void setPrice(double price) { if (price <= 10) { System.out.println("图书价格最少10元"); price = 10.0; } this.price = price; } public String demo() { String s = "书名:" + bookName + "\n作者:" + author + "\n出版社:" + publishHouse + "\n价格:" + price; return s; }
TestBook:
public class TestBook { public static void main(String[] args) { // //实例化对象,调用相关方法实现运行效果 Book book1 = new Book("红楼梦","曹雪芹","人民出版社",3); Book book2 = new Book("小李飞刀","古龙","人民长安出版社",55.5); System.out.println(book1.demo()); System.out.println("====================="); System.out.println(book2.demo()); } }
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题