老师帮忙检查一下吧!

来源:1-7 编程练习

全栈丶obj

2020-01-12 19:24:52

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

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

    /*通过公有的get/set方法实现属性的访问,其中:
    1、限定图书价格必须大于10,如果无效需进行提示,并强制赋值为10
    2、限定作者、书名均为只读属性
    */

    //信息介绍方法,描述图书所有信息
    private String bookName;
    private String author;
    private String publisher;
    private double price;

    public book(String bookName,String author,String publisher,double price){

        this.bookName = bookName;
        this.author = author;
        this.publisher = publisher;
        this.price = price;
    }

    public String getAuthor() {
        return author;
    }

    public String getBookName() {
        return bookName;
    }

    public String getPublisher() {
        return publisher;
    }
    public void setPublisher(){
        this.publisher = publisher;
    }

    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 info(){
        System.out.println("书名:"+getBookName()+"\n"+"作者:"+getAuthor()+"\n"+"出版社:"+getPublisher()+"\n"+"价格:"+getPrice());
    }
}
public class BookTest {
    public static void main(String[] args) {
        book book_info1 = new book("红楼梦","曹雪芹","人民文学出版社",1.0);
        book_info1.info();
        System.out.println(book_info1.getBookName());
        System.out.println("==================================");
        book book_info2 = new book("小李飞刀","古龙","中国长安出版社",55.5);
        book_info2.info();
        book_info1.setPrice(1);
        System.out.println(book_info1.getPrice());
    }
}


写回答

1回答

好帮手慕小尤

2020-01-13

同学你好,1.  当类名由一个单词组成时,该单词首字母大写;如果类名由多个单词组成,则每个单词的首字母均大写。如:book应改为:Book

2. 如果定义带参构造但未定义无参构造,则带参构造会覆盖掉默认的无参构造,当使用无参构造创建对象时,会找不到无参构造报错,所以建议创建无参构造。

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

0

0 学习 · 11489 问题

查看课程