1.未全部实现课程效果,如何改进?
没有实现价格上的提示信息。代码如下
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 | package com.ioomc.book; public class Book { // 私有属性:书名、作者、出版社、价格 private String BookName; private String BookAuther; private String PublicCompany; private double prize; // 通过构造方法实现属性赋值 public Book(String BookName, String BookAuther, String PublicCompany, double prize) { this .BookName = BookName; this .BookAuther = BookAuther; this .PublicCompany = PublicCompany; this .setPrize(prize); //this.prize = prize; //!!!问题点,为什么这里换了一下写法就会有不同的效果? } /* * 通过公有的get/set方法实现属性的访问,其中: 1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10 2、限定作者、书名均为只读属性 */ public String getBookName() { return BookName; } public String getBookAuther() { return BookAuther; } public String getPublicCompany() { return PublicCompany; } public void setPublicCompany(String publicCompany) { this .PublicCompany = publicCompany; } public double getPrize() { return prize; } public void setPrize( double prize) { if (prize < 10 ) { System.out.println( "图书价格最低10元" ); prize = 10 ; } else { System.out.println( "价格" + prize); } this .prize = prize; } // 信息介绍方法,描述图书所有信息 public void book() { System.out.println( "书名:" + BookName); System.out.println( "作者:" + BookAuther); System.out.println( "出版社:" + PublicCompany); System.out.println( "价格:" + prize); System.out.println( "===============================" ); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 | package com.ioomc.book; public class BookTest { public static void main(String[] args) { // TODO Auto-generated method stub Book one= new Book( "红楼梦" , "曹雪芹" , "人民出版社" , 9 ); one.book(); Book two= new Book( "小李飞刀" , "古龙" , "中国长安出版社" , 55 ); two.book(); } } |
3.效果
图书价格最低10元
书名:红楼梦
作者:曹雪芹
出版社:人民出版社
价格:10.0
===============================
价格55.0
书名:小李飞刀
作者:古龙
出版社:中国长安出版社
价格:55.0
===============================
16
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕珊
2017-11-12 11:20:50
有几个问题:
1、setPrize方法中把 this.prize = prize;这句话写到if-else的后面才行
2、构造方法中不用 this.prize = prize;这样就没有进行判断,应该调用setPrize方法this.setPrize(prize);
3、注意方法名应该首字母小写,所以输出信息的Book方法最好改成book或者info。另外,变量名的命名规则也和方法名一致。而且这个方法不需要有参数,已经通过构造方法给成员变量赋值了,对象中就已经包含成员变量的信息了,所以此处把参数去掉,输出的就是成员变量了,bookName就能相当于this.bookName了
4、(double)10不用这么写,10是int类型,会自动转换为double类型的。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧