请通过代码封装,实现如下需求:

1、具有属性:名称(title)、页数(pageNum

2、其中页数不能少于200页,否则输出错误信息,并赋予默认值200

3、为各属性提供赋值和取值方法

4、具有方法detail,用来在控制台输出每本教材的名称和页数

5、编写测试类BookTest进行测试:为Book对象的属性赋予初始值,并调用Book对象的detail方法,看看输出是否正确。

//定义一个Book类
public class Book {
//定义属性名称(title)和页数(pageNum),并用关键字private进行封装,外界不得随意访问
private String title;
private int pageNum = 200;//pageNum的默认值为200
//以下为属性title和pageNum提供取值方法get方法和赋值方法set方法
public String getTitle() {
return title;
}
public void setTitle(String b) {
title = b;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int a) {
//当调用此方法想把200以下的值赋给pageNum时,输出错误信息并不赋值,此时pageNum的值为默认值200
//若想把200以上的值赋给pageNum,则赋值成功
if(a < 200) {
System.out.println("错误信息!");
return;
}
pageNum = a;
}
//定义方法detail,将属性的值输出
public void detail() {
System.out.println("该教材的名称是:"+title);
System.out.println("该教材的页数是:"+pageNum);
}
}
//定义一个BookTest类进行测试
public class BookTest {
public static void main(String[] args) {
//创建Book类的一个对象
//Book是引用数据类型,book是一个局部变量,也是一个引用
//变量book存储的是创建的Book类对象的内存地址,即变量book指向这个对象
Book book = new Book();
//由于属性进行了封装,不能直接访问
//所以采用:引用.set(形式参数列表)或引用.get()的形式去给属性赋值或获取属性的值
book.setTitle("语文");//给这个对象的title属性赋值"语文"
//给这个对象的pageNum属性赋值10,不满200,赋值不成功
//调用时会以默认值200输出
book.setPageNum(10);
//调用get函数进行输出
System.out.println("该教材的名称是:"+book.getTitle());
System.out.println("该教材的页数是:"+book.getPageNum());
System.out.println("--------------------------------");
//调用Book类中的输出函数,会发现两种输出方式的输出结果一样,说明输出正确
book.detail();
System.out.println();
//同一个对象更改属性pageNum的值,同样的再输出一次
//此时300在200以上,赋值成功,输出时会以300输出
book.setPageNum(300);
System.out.println("该教材的名称是:"+book.getTitle());
System.out.println("该教材的页数是:"+book.getPageNum());
System.out.println("--------------------------------");
book.detail();
}
}