1-7的编程打完了,不知道符不符合要求
先上代码;
public class Book {
//私有属性:书名、作者、出版社、价格
String name;
String writer;
String press;
double money;
//通过构造方法实现属性赋值
/*通过公有的get/set方法实现属性的访问,其中:
1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
2、限定作者、书名均为只读属性
*/
Book(String name,String writer,String press,double money){
this.setName(name);
this.setWriter(writer);
this.setPress(press);
this.setMoney(money);
}
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setWriter(String writer){
this.writer=writer;
}
public String getWriter(){
return this.writer;
}
public void setPress(String press){
this.press=press;
}
public String getPress(){
return this.press;
}
public void setMoney(double money){
if(money>10)
this.money=money;
else{
System.out.println("图书价格最低10元");
this.money=10;
}
}
public double getMoney(){
return this.money;
}
//信息介绍方法,描述图书所有信息
public String info(){
String str="书名:"+this.getName()+"\n作者:"+getWriter()+"\n出版社:"+getPress()+"\n价格:"+getMoney();
return str;
}
}
public class BookTest {
// 测试方法
public static void main(String[] args) {
//实例化对象,调用相关方法实现运行效果
Book book1=new Book("红楼梦","曹雪芹","人民文学出版社",8);
Book book2=new Book("小李飞刀","古龙","中国长安出版社",55.5);
book1.info();
System.out.println(book1.info());
System.out.println("============================");
book2.info();
System.out.println(book2.info());
}
}
任务
属性:书名、作者、出版社、价格
方法:信息介绍
要求:
1、 设计构造函数实现对属性赋值
2、 设置私有属性,get/set方法实现对属性的访问
3、 限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
4、 限定作者、书名均为只读属性
5、信息介绍方法描述图书所有信息
把任务要求也贴上去了,不知道做的对不对。要求4限定作者、书名均为只读属性,我是直接对象实例化的时候就把所有参数全部都传了进来, 根本没有使用set方法传参,老师这是不是错的,因为未使用set传参,作者、书名、出版社、价格都是只读属性?
正在回答
并不是把所有的get,set方法都设置成私有的,而是把只读属性的set方法设置成私有的。
这里的目的是,一旦你通过带参构造创建了这个对象,你就不能通过set方法去修改了。
可以通过get方法去获取。
一旦你通过带参构造创建了这个对象,设为只读属性的就不能通过调用set方法修改了。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星