Java封装图书信息类

封装示例编写表示图书的 Book 类,实现以下需求:

	基本信息包括图书名称(bookName)、总页数(pagelbtalNum),其中页数不能少于 200 页,否则输出错误信息,并赋予默认值 200。为各个属性设置赋值和取值方法。具有 details() 方法,该方法在控制台输出每本图书的名称和总页数。

编写 BookTest 测试类,为 Book 对象的属性赋予初始值,并调用 details() 方法输出详细信息。根据上面的描述添加代码,步骤如下。

1 . 创建 Book 类,首先向该类添加 bookName 变量,并封装该变量。代码如下:

public class Book {private String bookName; // 图书名称public String getBookName() {return bookName;}public void setBookName(String bookName) {this.bookName = bookName;}
}

2 . 在 Book 类中添加 bookTotalNum 变量,并封装该变量,在封装的 setter 方法中判断页数的值是否小于 200。代码如下:

private int bookTotalNum; // 图书总页数public int getBookTotaiNum() {return bookTotalNum;
}public void setBookTotalNum(int bookTotalNum) {if (bookTotalNum < 200) {System.out.println(this.bookName + "这本书的页数不能少于 200 页");this.bookTotalNum = 200;} else {this.bookTotalNum = bookTotalNum;}
}

3 . 在 Book 类中添加公有的 details() 方法,输出图书的名称和总页数。代码如下:

public void details() {System.out.println(this.bookName + "这本书的总页数是:" + this.bookTotalNum);
}

4 . 创建 BookTest 测试类,在该类的 main() 方法中创建 Book 类的两个实例对象,然后分别为类中的两个属性赋值,最后调用 details() 方法输出信息。代码如下:

public class BookTest {public static void main(String[] args) {Book book1 = new Book();book1.setBookName("《红与黑》");book1.setBookTotalNum(190);book1.details();System.out.println("************************************");Book book2 = new Book();book2.setBookName("《安徒生童话》");book2.setBookTotalNum(1520);book2.details();}
}

5 . 执行上述代码,输出结果如下:

《红与黑》这本书的页数不能少于 200 页
《红与黑》这本书的总页数是:200
************************************
《安徒生童话》这本书的总页数是:1520

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/564689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python tkinter数据库通讯录_TKINTER--GUI连接数据库登陆

#-*- coding:UTF-8 -*- import tkinter.messagebox import tkinter as tk import pymysql # 构造窗口 window tk.Tk() window.title(登陆窗口) window.geometry(450x300) # 构造画布 canvas tk.Canvas(window,height200,width500) image_file tk.PhotoImage(filewelcome.gif…

自适应宽_移动端实现自适应缩放界面的方法汇总

作者 | 唐宋元明清2188来源 | http://www.cnblogs.com/kybs0/在开发App端的网页时&#xff0c;要适配iphone、ipad、ipod、安卓等各种机型&#xff0c;一般是直接使用em、px转em、界面缩放。本章是通过将界面缩放&#xff0c;等比例显示在各机型上。过程中遇到了些问题和大坑~然…

Java继承简介

继承是面向对象的三大特征之一。继承和现实生活中的“继承”的相似之处是保留一些父辈的特性&#xff0c;从而减少代码冗余&#xff0c;提高程序运行效率。 Java 中的继承就是在已经存在类的基础上进行扩展&#xff0c;从而产生新的类。已经存在的类称为父类、基类或超类&…

各种说明方法的答题格式_初中语文阅读答题公式 语文阅读理解万能公式大全...

很多人想知道初中语文阅读理解有哪些答题公式&#xff0c;语文阅读理解的万能公式有哪些呢?下面小编为大家介绍一下!初中语文阅读理解答题公式大全(一)某句话在文中的作用&#xff1a;1、文首&#xff1a;开篇点题;渲染气氛(散文)&#xff0c;埋下伏笔(记叙类文章)&#xff0c…

esp8266手机端网络调试助手_esp8266定时控制

要实现定时控制&#xff0c;需要先实现手动控制&#xff0c;或者app控制。实测定时精度&#xff0c;北京时间&#xff0c;误差不超过1秒。第一、远程App控制或手动控制下载esp8266示例程序下载地址: 点击下载本demo 是利用arduino IDE开发&#xff0c;关于arduino IDE 的ESP826…

集成学习之Adaboost(提升方法)

Adaboost 提升方法就是从弱学习器出发&#xff0c;反复学习&#xff0c;得到一系列弱分类器&#xff08;基本分类器&#xff09;&#xff0c;然后组合这些弱分类器&#xff0c;构成一个强分类器。 基本思路 待解决问题 1、每一轮如何改变训练数据的权值或概率分布 2、如何将…

Java super关键字详解

由于子类不能继承父类的构造方法&#xff0c;因此&#xff0c;如果要调用父类的构造方法&#xff0c;可以使用 super 关键字。super 可以用来访问父类的构造方法、普通方法和属性。 super 关键字的功能&#xff1a; 在子类的构造方法中显式的调用父类构造方法访问父类的成员方…

93没有了_杭州1米93程序员征婚贴火了!年薪50万,孩子随妈姓,没有皇位要继承...

文丨三秋桂子自从二胎政策开放以来&#xff0c;很多宝妈都希望二宝能随自己姓&#xff0c;但有些男方家庭却不同意&#xff0c;双方就孩子的“冠名权”一事争论不休。可最近有位小伙却因为征婚贴火了&#xff0c;原因有两个&#xff0c;一是小伙瞩目的身高&#xff0c;二是小伙…

李航《统计学习方法》之HMM隐马尔可夫模型

李航《统计学习方法》之HMM隐马尔可夫模型 文章目录前言一、基本概念1、语言描述&#xff1a;2、符号表示3、基本假设4、例子5、隐马尔可夫模型解决的三个基本问题二、概率计算算法1、向前算法算法&#xff1a;例题2、向后算法三、学习算法1、监督学习算法背景方法2、无监督学习…

Java对象类型转换

将一个类型强制转换成另一个类型的过程被称为类型转换。本节所说的对象类型转换&#xff0c;是指存在继承关系的对象&#xff0c;不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时&#xff0c;会抛出 Java 强制类型转换&#xff08;java.lang.ClassCastExcepti…

python下载在哪个盘_Windows下载安装python详情和注意事项

因为Python是跨平台的&#xff0c;它可以运行在Windows、Mac和各种Linux/Unix系统上。在Windows上写Python程序&#xff0c;放到Linux上也是能够运行的。 首先就得把Python安装到你的电脑里。安装后&#xff0c;你会得到Python解释器&#xff08;就是负责运行Python程序的&…

6000毫安以上智能手机_展望2021年智能手机市场:这5大技术要爆发

2020年是极不平凡的一年&#xff0c;在黑天鹅、政治动荡等事件的冲击下&#xff0c;许多行业都按下了暂停键&#xff0c;智能手机行业自然也不例外。销售渠道受阻、供应链生产紧张&#xff0c;导致智能手机市场整体出货量呈现持续下跌的状况&#xff0c;严峻的市场行情让智能手…

无监督学习之聚类方法(K-Means、层次聚类)

一、导入 无监督学习中需要对无标记样本进行训练学习进而找到数据的内在性质和逻辑结构&#xff0c;聚类方法是为了为无监督学习的数据分析提供的基础学习方法。 聚类将数据集划分为若干个子集&#xff08;每个子集称为类或者簇&#xff09;&#xff0c;如果一个样本只属于一个…

js调用python接口_JavaScript如何调用Python后端服务

欢迎关注【无量测试之道】公众号&#xff0c;回复【领取资源】, Python编程学习资源干货、 PythonAppium框架APP的UI自动化、 PythonSelenium框架Web的UI自动化、 PythonUnittest框架API自动化、 资源和代码 免费送啦~ 文章下方有公众号二维码&#xff0c;可直接微信扫一扫关注…

详细地图_一目了然:蒙城学区划分详细地图

从明天(8月5日)起&#xff0c;小学一年级&#xff0c;初中一年级可在网上注册、报名了。根据区域内适龄学生人数、学校分布、学校规模、班额规定、交通状况等因素&#xff0c;以街道、路段、门牌号、居住小区、村组等构成要件&#xff0c;按照确保公平和免试就近入学的原则&…

奇异值分解SVD(证明全部省略)

SVD知识梳理一、引入二、SVD的定义、性质定义例题奇异值分解一定存在紧奇异值分解和截断奇异值分解几何解释三、SVD算法计算过程四、SVD与矩阵近似五、python实现六、应用一、引入 主成分分析PCA、潜在语义分析都会用到SVD 不要求A矩阵是方阵&#xff0c;SVD是线性代数中相似对…

jq 比较两个时间是否在同一天_jq: 属性-class

.aadClass() 添加class用法和前面的text方法一样&#xff0c;可以传字符串&#xff0c;可以传函数。值用空格隔开可以增加多个class<.removeClass() 移出class值<他们在一起也可以链式调用。链式调用: 取值的时候返回return结果&#xff0c;赋值返回this,表示可以继续调用…

李航《统计学习方法》之EM算法及其推广

EM算法是一种迭代方法&#xff0c;可以看作用坐标下降法来最大化对数似然估计下界的过程。 一、引入 &#xff08;一&#xff09;算法介绍 1、例题 有三枚硬币&#xff0c;ABC他们出现正面的概率分别是Π&#xff0c;p和q。进行如下投掷实验&#xff1a;先投掷A&#xff0c…

获取选中_【字节】如何实现选中复制的功能

Barnett Demesne公园中在白雪覆盖的山坡上玩耍的一家&#xff0c;北爱尔兰贝尔法斯特(© Stephen Barnes/Alamy)本题摘自于我 github 上的面试每日一题&#xff1a;https://q.shanyue.tech&#xff0c;并有大厂面经及内推信息&#xff0c;可在左下角打开本题原文链接在一些…