Java私有的private的使用——编写一个类Book,代表教材按照要求输出内容

编写一个类Book,代表教材
(1)具有属性、名称(title)、页数(pageNum),其中页数不能少于200页,否则输出错误信息,并赋予默认值200;
(2)具有方法detail,用来在控制台输出每本教材的名称和页数;
(3)具有带参数的构造方法、用来完成对象的初始化工作。
(4)创建测试类,并创建对象进行测试

方法一:
package leiDeDingYi_leiDeShiYong;

public class Book {
  private String title;//名称
  private int pageNum=200;//页数
  
  public Book() {}//构造方法
  public Book(String title, int pageNum) {
   this.title = title;
   if(pageNum<200)  System.out.println("错误信息");//在构造方法里面进行判断,不提倡这么书写
   else  this.pageNum = pageNum;
  }
  public void detail() {//成员方法
   System.out.println("教材名称:"+title+"\n页数:"+pageNum);
  }
  public String getTitle() {
   return title;
  }
  public void setTitle(String title) {
   this.title = title;
  }
  public int getPageNum() {
   return pageNum;
  }
  public void setPageNum(int pageNum) {
   this.pageNum = pageNum;
  } 
}
package leiDeDingYi_leiDeShiYong;

public class Book2 {//创建一个测试类
  public static void main(String[] args) {
   Book bo = new Book("Java语言",300);
   bo.detail();
  }
}


输出显示;
教材名称:Java语言
页数:300
方法二(进行优化)
package leiDeDingYi_leiDeShiYong;

public class Book3 {
  private String title;//名称
  private int pageNum;//页数
  
  public Book3() {}//构造方法
  public Book3(String title, int pageNum) {
   this.title = title;
   setPageNum(pageNum);
  }
  public void detail() {//成员方法
   System.out.println("教材名称:"+getTitle()+"\n页数:"+getPageNum());
  }
  public String getTitle() {
   return title;
  }
  public void setTitle(String title) {
   this.title = title;
  }
  public int getPageNum() {
   return pageNum;
  }
  public void setPageNum(int pageNum) {
   if(pageNum<200) {
    System.out.println("错误信息");
   }else this.pageNum = pageNum;
  } 
}
package leiDeDingYi_leiDeShiYong;

public class Book4 {//创建一个测试类
  public static void main(String[] args) {
   Book3 bo2 = new Book3("Java语言",200);//赋给一个默认值200
   bo2.setTitle("Java程序语言");
   bo2.setPageNum(2);
   bo2.detail();
  }
}


输出显示:

错误信息
教材名称:Java程序语言
页数:200
发布了195 篇原创文章 · 获赞 76 · 访问量 6967

猜你喜欢

转载自blog.csdn.net/qq_45696288/article/details/105295090