题目要求通过构造方法实现属性赋值,那还要set/get方法干嘛
1、set/get不就是对属性进行写入和读取吗?构造方法对属性赋值了,那set/get就没有意义了啊
2、如果作者、书名设置成只读属性还怎么和其他属性一起从test类中写入
===========================================================
public class Book {
//私有属性:书名、作者、出版社、价格
private String name;
private String author;
private String press;
private double price;
//通过构造方法实现属性赋值
public Book(){
}
/*通过公有的get/set方法实现属性的访问,其中:
1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
2、限定作者、书名均为只读属性
*/
public void setName(String name){
this.name=name;
}
public String getName(){
return this.name;
}
public void setAuthor(String author){
this.author=author;
}
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");
else
this.price=price;
}
public double getPrice(){
return this.price;
}
//信息介绍方法,描述图书所有信息
public void inforMation(){
System.out.println("书名:"+this.getName());
System.out.println("作者:"+this.getAuthor());
System.out.println("出版社:"+this.getPress());
if(this.getPrice()==0)
return;
System.out.println("价格:"+this.getPrice()+"元");
}
}
正在回答 回答被采纳积分+1
同学你好,使用构造方法可以在定义对象的同时给属性赋值,使用set方法也可以属性赋值,通常建议在构造方法中,使用set方法对属性赋值,如:
限制作者和书名为只读属性,意思是不能有set方法,只能通过构造方法给属性赋值。
所以在同学的代码中,建议在Book类中,1、不能有作者和书名的set方法。2、定义带参构造方法,在带参构造方法中,给属性赋值,作者和书名使用this.name = name这种方法,而出版社和价格则使用set的方法给属性赋值,具体可以参考截图。2、在测试类中,使用带参构造方法定义对象。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星