老师,请批改,谢谢!
public class Book {
//私有属性:书名、作者、出版社、价格
private String name;
private String writer;
private String press;
private float price;
//通过构造方法实现属性赋值
public Book(String name,String writer,String press,float price) {
this.setName(name);
this.setWriter(writer);
this.setPress(press);
this.setPrice(price);
}
/*通过公有的get/set方法实现属性的访问,其中:
1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
2、限定作者、书名均为只读属性
*/
public String getName() {
return name;
}
private void setName(String name) {
this.name = name;
}
public String getWriter() {
return writer;
}
private void setWriter(String writer) {
this.writer = writer;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
if(price<=10) {
System.out.println("图书价格最低10元");
this.price=10;
}else {
this.price = price;
}
}
//信息介绍方法,描述图书所有信息
public void news() {
System.out.println("书名:"+this.name);
System.out.println("作者:"+this.writer);
System.out.println("出版社:"+this.press);
System.out.println("价格:"+this.price);
}
}
public class BookTest {
public static void main(String[] args) {
//实例化对象,调用相关方法实现运行效果
Book b1= new Book("红楼梦","曹雪芹","人民文学出版社",10.0f);
b1.news();
System.out.println("=======================");
Book b2= new Book("小李飞刀","古龙","中国长安出版社",55.5f);
b2.news();
}
}0
收起
正在回答
2回答
同学你好,
set是赋值操作,同学可以参考以下思路进行理解。
1、创建对象时会调用带参构造方法

2、在构造方法中为属性赋值,赋值有两种方式,
方式一:
调用set方法,即:this.setName(name);
方式二:
直接为属性赋值,即:this.name=name;
当name,writer为只读属性时,表示除了在创建对象时为它们赋值外,在其他地方无法访问到。
所以,在这里这两个属性没有public修饰的set方法。
在构造方法中需要直接为私有属性name,writer赋值。

3、方法只有被调用的时候才会执行,set方法,get方法也是如此。
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星