老师,请批改,谢谢!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 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积分~
来为老师/同学的回答评分吧