帮看下我写的这个是不有点麻烦,不太明白只读是什么意思,谢谢

帮看下我写的这个是不有点麻烦,不太明白只读是什么意思,谢谢

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,建议同学在Book类中定义带参构造方法,在BookTest类中使用带参构造方法定义对象。另外Book类中应该有介绍图书信息的方法,在BookTest类中,使用Book类对象调用介绍方法即可直接输出图书信息。只读表示属性只有get方法,没有set方法,可以通过get方法读取属性值,但是不能通过set方法写入属性值。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • qq_慕设计1529493 提问者 #1
    请问这样对吗,test中调用时有问题 public class Book { //私有属性:书名、作者、出版社、价格 private String name; private String author; private String publish; private float price; //通过构造方法实现属性赋值 public Book(String name,String author,String publish,Float price) { this.name=name; this.author=author; this.publish=publish; this.price=price; } public String getName() { return name; } public String getAuthor() { return author; } public String getPublish() { return publish; } public void setPrice(float price) { if(price<=10) { System.out.println("输入价格有误,图书价格最低10元"); this.price=10; }else { this.price = price; } } public Float getPrice() { return price; } /*通过公有的get/set方法实现属性的访问,其中: 1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10 2、限定作者、书名均为只读属性 */ //信息介绍方法,描述图书所有信息 public void showInfo() { System.out.println("书名:"+getName()); System.out.println("作者:"+getAuthor()); System.out.println("出版社:"+getPublish()); System.out.println("价格:"+getPrice()); }
    2019-04-08 20:19:27
提问者 qq_慕设计1529493 2019-04-08 20:20:11

public class Book {

//私有属性:书名、作者、出版社、价格

    private String name;

    private String author;

    private String publish;

    private float price;

  //通过构造方法实现属性赋值

public Book(String name,String author,String publish,Float price) {

this.name=name;

this.author=author;

this.publish=publish;

this.price=price;

}

public String getName() {

return name;

}

public String getAuthor() {

return author;

}

public String getPublish() {

return publish;

}

public void setPrice(float price) {

if(price<=10) {

System.out.println("输入价格有误,图书价格最低10元");

this.price=10;

}else {

this.price = price;

}

}

public Float getPrice() {

return price;

}


    /*通过公有的get/set方法实现属性的访问,其中:

    1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10

    2、限定作者、书名均为只读属性

    */


  //信息介绍方法,描述图书所有信息

        public void showInfo() {

        System.out.println("书名:"+getName());

    System.out.println("作者:"+getAuthor());

    System.out.println("出版社:"+getPublish());

    System.out.println("价格:"+getPrice());

        }


  • 修改的还可以,不过题目中只要求了书名和作者是只读属性,所以还可以添加出版社的set()方法,建议在带参构造中使用set方法给价格和出版社赋值。这样就可以在定义对象时就对价格信息做一个判断。另外价格的get方法及带参构造中的价格参数,建议使用float类型即可,不必使用float的包装类Float。祝:学习愉快~
    2019-04-09 11:00:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师