老师,帮忙优化一下代码

来源:1-7 编程练习

慕粉0958571925

2020-03-20 22:37:31

public class BookTest {


     // 测试方法

public static void main(String[] args) {

      //实例化对象,调用相关方法实现运行效果

      Book dy1=new Book();

      System.out.println("图书价格最低10元");

      dy1.setSm("红楼梦");

      System.out.println(dy1.getSm());

      dy1.setZz("曹雪芹");

      System.out.println(dy1.getZz());

      dy1.setCbs("人民文学出版社");

      System.out.println(dy1.getCbs());

      dy1.setJg(10);

      System.out.println("价格:"+dy1.getJg()+"元");

      System.out.println("===============================");

      Book dy2=new Book();

      dy2.setSm("小李飞刀");

      System.out.println(dy2.getSm());

      dy2.setZz("古龙");

      System.out.println(dy2.getZz());

      dy2.setCbs("中国长安出版社");

      System.out.println(dy2.getCbs());

      dy2.setJg(55.5);

      System.out.println("价格:"+dy2.getJg()+"元");

   

     }

}

public class Book {

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

     private String sm,zz,cbs;

     private double jg;

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

public void setSm(String sm){

    this.sm=sm;

}

public String getSm(){

    return "书名:"+this.sm;

}

public void setZz(String zz){

    this.zz=zz;

}

public String getZz(){

    return "作者:"+this.zz;

}

public void setCbs(String cbs){

    this.cbs=cbs;

}

public String getCbs(){

    return "出版社:"+this.cbs;

}

public void setJg(double jg){

    if(jg<=10) {

this.jg=10;

    }

else {

    this.jg=jg;

}

}

public double getJg(){

    return this.jg;

}

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

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

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

    */


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



}


写回答

1回答

好帮手慕小琪

2020-03-21

同学你好,同学代码有一处错误。题中要求书名和作者为只读属性,所以这两个属性不加set方法,并创建有书名和作者属性的构造方法。

优化代码如下:

public class Book {
  //私有属性:书名、作者、出版社、价格
     private String sm;
     private String zz;
     private String cbs;
     private double jg;
  //通过构造方法实现属性赋值

    public Book(String sm, String zz) {
        this.sm = sm;
        this.zz = zz;
    }

    public String getSm(){
            return this.sm;
        }

        public String getZz(){
            return this.zz;
        }
        public void setCbs(String cbs){
            this.cbs=cbs;
        }
        public String getCbs(){
            return this.cbs;
        }
        public void setJg(double jg){
            if(jg<=10) {
                this.jg=10;
            }
            else {
                this.jg=jg;
            }
        }
        public double getJg(){
            return this.jg;
        }
            /*通过公有的gett方法实现属性的访问,其中:
            1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
            2、限定作者、书名均为只读属性
            */
          //信息介绍方法,描述图书所有信息
          public String info() {
              String st="书名:"+this.getSm()+"\n作者:"+this.getZz()+"\n出版社"+
                      this.getCbs()+"\n价格"+this.getJg()+"元";
              return st;
          }

        }
public class BookTest {

     // 测试方法
	public static void main(String[] args) {
      //实例化对象,调用相关方法实现运行效果
      Book dy1=new Book("红楼梦","曹雪芹");
      System.out.println("图书价格最低10元");
      dy1.setCbs("人民文学出版社");
      dy1.setJg(10);
      System.out.println(dy1.info());
      System.out.println("===============================");
      Book dy2=new Book("小李飞刀","古龙");
      dy2.setCbs("中国长安出版社");
      dy2.setJg(55.5);
      System.out.println(dy2.info());
     }
}

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

1

0 学习 · 11489 问题

查看课程