代码哪里错了

代码哪里错了

1
<br>

public class Book {
     //私有属性:书名、作者、出版社、价格
    private String title;
    private String author;
    private String publishing;
    private double price;
    
    public Book(String title,String author,String publishing,double price){
        this.title=title;
        this.author=author;
        this.setPublishing(publishing);
        this.setPrice(price);
    }
    
    public String getPublishing() {
        return publishing;
    }
    public void setPublishing(String publishing) {
        this.publishing = publishing;
    }
    public double getPrice() {
        return price;
    }
    public void setPrice(double price) {
        if(price<=10){
             System.out.println("图书价格最低10元");
             this.price=10;
        }else{
            this.price=price;
        }
        
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public void setAuthor(String author) {
        this.author = author;
    }
}

public class BookTest {

    public static void main(String[] args) {
           //实例化第一本书,四参构造方法

        Book one=new Book("红楼梦","曹雪芹","人名文学出版社",10.0);

          //实例化第二本书,四参构造方法

          Book two = new Book("小李飞刀","古龙","中国长安出版社",55.5);

          

          //第一第二本书描述信息方法

          System.out.println("书名:"+one.setTitle(title));
          System.out.println("作者:"+one.setAuthor(author));
          System.out.println("出版社:"+one.getPublishing());
          System.out.println("价格:"+one.getPrice());
          System.out.println("===========================================");
          System.out.println("书名:"+two.setTitle(title));
          System.out.println("作者:"+two.setAuthor(author));
          System.out.println("出版社:"+two.getPublishing());
          System.out.println("价格:"+two.getPrice());
        
        
        

    }

}


正在回答

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

1回答

Book类中缺少title和author的getter方法,增加getter方法之后,可以直接调用getter方法完成打印输出。即

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

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

two对象的同上。

建议设置好类中的属性之后,首先根据作业要求生成其getter和setter方法。

祝学习愉快~

  • 慕粉0941066603 提问者 #1
    但是要求的是限定作者、书名均为只读属性
    2017-07-25 15:04:21
  • 一叶知秋519 回复 提问者 慕粉0941066603 #2
    你好!只读属性,指的是针对私有属性,只设置get方法,不设置set方法。所以在类外通过对象访问时,只能获取属性值,而无法进行属性赋值。作业中还应该将title和author的setter方法去掉,直接在对象创建的时候对其进行初始化。祝学习愉快~
    2017-07-25 15:21:12
  • 慕粉0941066603 提问者 回复 一叶知秋519 #3
    public class Book { //私有属性:书名、作者、出版社、价格 private String title; private String author; private String publishing; private double price; public Book(String title,String author,String publishing,double price){ this.title=title; this.author=author; this.setPublishing(publishing); this.setPrice(price); } public String getPublishing() { return publishing; } public void setPublishing(String publishing) { this.publishing = publishing; } public double getPrice() { return price; } public void setPrice(double price) { if(price<=10){ System.out.println("图书价格最低10元"); this.price=10; }else{ this.price=price; } } public String getTitle() { return title; } public String getAuthor() { return author; } public static void main(String[] args) { //实例化第一本书,四参构造方法 Book one=new Book("红楼梦","曹雪芹","人名文学出版社",10.0); //实例化第二本书,四参构造方法 Book two = new Book("小李飞刀","古龙","中国长安出版社",55.5); //第一第二本书描述信息方法 System.out.println("书名:"+one.getTitle()); System.out.println("作者:"+one.getAuthor()); System.out.println("出版社:"+one.getPublishing()); System.out.println("价格:"+one.getPrice()); System.out.println("==========================================="); System.out.println("书名:"+one.getTitle()); System.out.println("作者:"+one.getAuthor()); System.out.println("出版社:"+two.getPublishing()); System.out.println("价格:"+two.getPrice()); } 这样吗?
    2017-07-25 15:31:34
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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