当前位置: 首页 > news >正文

Java期末复习题之封装

点击返回标题->23年Java期末复习-CSDN博客


第1题.

定义一个类Person,定义name和age私有属性,定义有参的构造方法对name和age进行初始化。在测试类中创建该类的2个对象,姓名、年龄分别为lili、19和lucy、20,在屏幕打印出2个对象的姓名和年龄。

 

public class Main {public static void main(String[] args) {Person p1 = new Person("lily",19);Person p2 = new Person("lucy",20);System.out.println(p1.toString());System.out.println(p2.toString());}
}
class Person{private String name;private int age;//有参构造给对象赋值Person(String name,int age){this.name = name;this.age = age;}//toString返回由name和age组成的预定字符串public String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +'}';}
}

第2题.

首先定义一个计算长方形面积的类rectangleClass,要求类中有一个定义长方形左上角和右下角座标的构造函数,以及一个通过长方形右下角座标与左上角座标计算长方形面积,并实例化两个长方形进行测试.

 

public class Main {public static void main(String[] args) {rectangleClass rec1 = new rectangleClass(-5, 3, -3, 1);rectangleClass rec2 = new rectangleClass(2, -3, 4, -6);System.out.println("rec1" + rec1.getPoint() + "其面积为:" + rec1.getArea());System.out.println("rec2" + rec2.getPoint() + "其面积为:" + rec2.getArea());}
}
class rectangleClass {int x1, y1, x2, y2;//有参构造,定义长方形左上角和右下角座标rectangleClass(int x1, int y1, int x2, int y2) {this.x1 = x1;this.x2 = x2;this.y1 = y1;this.y2 = y2;}//返回计算的面积double getArea() {return Math.abs(x1 - x2) * Math.abs(y1 - y2);}//获取当前长方形左上角点和右下角点的坐标String getPoint() {return "左上角坐标为:(" + this.x1 + "," + this.y1 + ")," + "右下角角坐标为:(" + this.x2 + "," + this.y2 + "),";}
}

第3题.

设计一个表示图书的Book类,它包含图书的书名、作者、月销售量等私有属性,另有两个构造方法(一个不带参数,另一个带参数),成员方法setBook( ) 和printBook()分别用于设置和输出书名、作者、月销售量等数据。并设计相应的测试Book类的应用程序主类,测试并显示输出提供所有功能的结果。

 

public class Main {public static void main(String[] args) {//b1采取有参构造实例化对象并赋值的形式Book b1 = new Book("三体", "刘慈欣", 114514);b1.printBook();//b2采取无参构造实例化对象,调用setBook()成员方法赋值的形式Book b2 = new Book();b2.setBook("龙族", "江南", 10086);b2.printBook();}
}
class Book {private String name, author;private int sale_volume;//无参构造Book() {System.out.println("无参构造被调用");}//有参构造Book(String name, String author, int sale_volume) {System.out.println("有参构造被调用");this.name = name;this.author = author;this.sale_volume = sale_volume;}//设置书本信息void setBook(String name, String author, int sale_volume) {this.name = name;this.author = author;this.sale_volume = sale_volume;}//打印书本信息void printBook() {System.out.printf("书名:%s    作者:%s   月销售量:%d\n", this.name, this.author, this.sale_volume);}
}

第4题.

请创建一个银行帐户类,要求如下:(1)类包括帐户名、帐户号、存款额等私有属性;(3)有三个参数的构造方法(2)可实现余额查询,存款和取款的操作。(3)创建该类的对象,验证以上两项。

 

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Bank b1 = new Bank("张三", "123456", 100);int input;do {//循环弹出菜单并请求选择menu();input = sc.nextInt();switch (input) {case 1:b1.getBalance();break;case 2:b1.save_money();break;case 3:if(b1.getBalance()==0){System.out.println("你的账户余额为0,无分文可取!");break;}b1.withdraw_money();break;case 0:System.out.println("已退出,欢迎再次使用!");break;default:System.out.println("该选项尚未开发……");break;}} while (input != 0);}public static void menu() {//打印菜单System.out.println("************************");System.out.println("****** 1.查询余额 ********");System.out.println("****** 2.存款    ********");System.out.println("****** 3.取款    ********");System.out.println("****** 0.退出账户 ********");}static class Bank {private String account_name, account_number;private int balance;public Bank(String account_name, String account_number, int balance) {this.account_name = account_name;this.account_number = account_number;this.balance = balance;}int getBalance() {//余额查询System.out.printf("用户名:%s,当前余额:%d\n", this.account_name, this.balance);return this.balance;}void save_money() {//存钱int save;Scanner sc = new Scanner(System.in);while (true) {System.out.println("你要存多少钱?请输入->");save = sc.nextInt();if (save <= 0) {System.out.println("请输入合理的存款数!");continue;}break;}this.balance += save;System.out.printf("完成存款,本次存款共计%d元,当前余额%d\n", save, this.balance);}void withdraw_money() {//取钱int withdraw;Scanner sc = new Scanner(System.in);while (true) {System.out.println("你要取多少钱?请输入->");withdraw = sc.nextInt();if (withdraw <= 0) {System.out.println("请输入合理的取款数!");continue;} else if (withdraw > this.balance) {System.out.println("你没用这么多钱可供取款!");continue;}break;}this.balance -= withdraw;System.out.printf("完成取款,本次取款共计%d元,当前余额%d\n", withdraw, this.balance);}}
}

相关文章:

Java期末复习题之封装

点击返回标题->23年Java期末复习-CSDN博客 第1题. 定义一个类Person,定义name和age私有属性&#xff0c;定义有参的构造方法对name和age进行初始化。在测试类中创建该类的2个对象&#xff0c;姓名、年龄分别为lili、19和lucy、20&#xff0c;在屏幕打印出2个对象的姓名和年龄…...

湖科大计网:计算机网络概述

一、计算机网络的性能指标 一、速率 有时候数据量也认为是以10为底的&#xff0c;看怎么好算。&#xff08;具体吉大考试用什么待商榷&#xff09; 二、带宽 在模拟信号系统中带宽的含义&#xff0c;本课程中用到的地方是&#xff1a;香农定理和奈奎斯特定理公式的应用之中。 …...

每日一道c语言

任务描述 题目描述:输入10个互不相同的整数并保存在数组中&#xff0c;找到该最大元素并删除它&#xff0c;输出删除后的数组 相关知识&#xff08;略&#xff09; 编程要求 请仔细阅读右侧代码&#xff0c;结合相关知识&#xff0c;在Begin-End区域内进行代码补充&#xf…...

(C)一些题11

1. #include<stdio.h> #include<string.h> void main() { char *s1"ABCDEF"&#xff0c;*s2"aB"&#xff1b; s1; s2; puts(s1)&#xff1b; puts(s2)&#xff1b; printf("%d\n",strcmp(s1,s2))&#xff1b; } 答案&#xff1…...

多级路由component页面不加载

项目基于vue-element-admin 新建SubView.vue <template><router-view /> </template><script setup> </script>在父层添加component {path: /sj,component: Layout,redirect: /sj,name: 三级医院评审标准(2022),meta: {title: 三级医院评审标准(…...

【原创】Mac mini M1安装home-brew

Mac mini M1 所需神器 home-brew 按照官网的脚本无法安装。 无奈&#xff0c;从github下载安装包来安装。 Homebrew 结果&#xff0c;还需要先安装 Xcode command 命令行工具 xcode-select --install安装完了&#xff0c;却无法执行。 修改配置文件 cd vi .zshrc添加如下内…...

【python交互界面】实现动态观察图像在给定HSV范围的区域显示

HSV颜色空间 与RGB颜色空间相比&#xff0c;HSV颜色空间更适合进行颜色分析和提取特定颜色的目标。在HSV空间中&#xff0c;颜色信息被分布在不同的通道上&#xff0c;使我们能够更准确地定义颜色的范围&#xff0c;并使用阈值操作轻松地分离出我们感兴趣的区域部分。 HSV三个通…...

Vue3中定义变量是选择ref还是reactive?

目录 ref和reactive的优势 1. ref 优势&#xff1a; 应用场景&#xff1a; 示例&#xff1a; 2. reactive 优势&#xff1a; 应用场景&#xff1a; 示例&#xff1a; ref和reactive的劣势 1. ref 2. reactive 应用案例 总结 Vue3中定义变量可以选择使用ref或reac…...

数据结构 | 查漏补缺之哈希表、最短路径、二叉树与森林的转换

哈希表是什么&#xff1f; 或者说 设图采用邻接表的存储结构&#xff0c;写对图的删除顶点和删除边的算法步骤 删除边 删除点 最短路径问题 参考博文 迪杰斯特拉(Dijkstra)算法_dijkstra算法-CSDN博客 Dijkstra(迪杰斯特拉&#xff09;算法 定义一个点为源点&#xff0c;算源…...

SpringCloud

五大组件 注册/配置中心 Nacos 、Eureka远程调用 Feign负载均衡 Ribbon服务保护 sentinel&#xff08;实现限流、降级、熔断&#xff09;网关 gateway 注册中心 Eureka 服务注册&#xff1a;服务提供者把自己的信息注册到Eureka&#xff0c;由Eureka来保存这些信息服务发现…...

fastadmin嵌套关联查询,thinkPHP5嵌套关联查询

fastadmin嵌套关联查询 thinkPHP5嵌套关联查询 笔记记录 嵌套关联查询 A -> B -> C A 表关联B表 B表关联C表 同时把A&#xff0f;B&#xff0f;C表相关的数据展现出来 B表的model B表关联C表 我的C表是B表的自身关联。也是一个表&#xff0c;所以为C表 namespace app…...

Power BI - 5分钟学习拆分列

每天5分钟&#xff0c;今天介绍Power BI拆分列功能。 什么是拆分列&#xff1f; 有时导入Power BI的数据表中&#xff0c;某列内容都包含同样的特殊字符如 /&/-/_等&#xff0c;可以利用这个特殊字符进行拆分列的操作&#xff0c;获得我们想要的信息。 操作举例&#xf…...

ELK(四)—els基本操作

目录 elasticsearch基本概念RESTful API创建非结构化索引&#xff08;增&#xff09;创建空索引&#xff08;删&#xff09;删除索引&#xff08;改&#xff09;插入数据&#xff08;改&#xff09;数据更新&#xff08;查&#xff09;搜索数据&#xff08;id&#xff09;&…...

【100天精通Python】Day75:Python机器学习-第一个机器学习小项目_鸾尾花分类项目(上)

目录 1 机器学习中的Helloworld _鸾尾花分类项目 2 导入项目所需类库和鸾尾花数据集 2.1 导入类库 2.2 scikit-learn 库介绍 &#xff08;1&#xff09;主要特点&#xff1a; &#xff08;2&#xff09;常见的子模块&#xff1a; 3 导入鸾尾花数据集 3.1 概述数据 3.…...

gitlab高级功能之容器镜像仓库

今天给大家介绍一个gitlab的高级功能 - Container Registry&#xff0c;该功能可以实现docker镜像的仓库功能&#xff0c;将gitlab上的代码仓的代码通过docker构建后并推入到容器仓库中&#xff0c;好处就是无需再额外部署一套docker仓库。 文章目录 1. 参考文档2. Container R…...

线程的使用(二)

新增实现方式之实现Callable接口 特点 1、可以有返回值。 2、方法可以抛异常。 3、支持泛型的返回值。 4、需借助FutureTask类&#xff0c;比如获取返回值。 步骤 1、创建一个实现Callable接口的实现类。 2、重写call方法&#xff0c; 将此线程需执行的操作声明在call&…...

k8s之镜像拉取时使用secret

k8s之secret使用 一、说明二、secret使用2.1 secret类型2.2 创建secret2.3 配置secret 一、说明 从公司搭建的网站镜像仓库&#xff0c;使用k8s部署服务时拉取镜像失败&#xff0c;显示未授权&#xff1a; 需要在拉取镜像时添加认证信息. 关于secret信息,参考: https://www.…...

mysql面试题——MVCC

一&#xff1a;什么是MVCC&#xff1f; 多版本并发控制&#xff0c;更好的方式去处理读-写冲突&#xff0c;就是为了查询一些正在被另一个事务更新的行&#xff0c;并且可以看到它们被更新之前的值&#xff0c;这样在做查询的时候就不用等待另一个事务释放锁。 二&#xff1a…...

【华为数据之道学习笔记】1-2华为数字化转型与数据治理

传统企业通过制造先进的机器来提升生产效率&#xff0c;但是未来&#xff0c;如何结构性地提升服务和运营效率&#xff0c;如何用更低的成本获取更好的产品&#xff0c;成了时代性的问题。数字化转型归根结底就是要解决企业的两大问题&#xff1a;成本和效率&#xff0c;并围绕…...

微服务01

笔记&#xff1a; day03-微服务01 - 飞书云文档 (feishu.cn) 数据库连接不上&#xff1f; 要在虚拟机启动MySQL容器。docker start mysql 服务治理 服务提供者&#xff1a;暴露服务接口&#xff0c;供其他服务调用 服务消费者&#xff1a;调用其他服务提供的接口 注册中心&…...

01_第一篇:到底什么是嵌入式芯片?与通用CPU_GPU_DSP的核心区别

嵌入式芯片入门&#xff1a;到底什么是嵌入式芯片&#xff1f;与通用CPU/GPU/DSP的核心区别 引言&#xff1a;智能时代的核心基石&#xff0c;嵌入式芯片的无处不在 在万物互联的智能时代&#xff0c;我们的生活早已被无数“隐形大脑”环绕&#xff1a;清晨唤醒你的智能手环、出…...

嵌入式系统代码执行时间测量方法与优化

1. 嵌入式程序运行时间测量的必要性在嵌入式系统开发中&#xff0c;精确测量代码执行时间是每个工程师必备的技能。无论是优化算法效率、调试实时系统&#xff0c;还是验证硬件性能&#xff0c;时间测量都扮演着关键角色。以STM32为例&#xff0c;当我们需要确认一个延时函数是…...

别再死磕英文手册了!手把手带你用Lisflood-FP跑通第一个洪水模拟案例(附T001_buscot实战)

从零到一&#xff1a;Lisflood-FP洪水模拟实战指南&#xff08;T001_buscot案例详解&#xff09; 刚接触水文模型的研究者常被英文手册劝退——密密麻麻的公式、晦涩的术语、复杂的参数配置让人望而生畏。其实&#xff0c;掌握Lisflood-FP的关键不在于死磕理论&#xff0c;而在…...

Seelen-UI终极指南:5分钟打造你的专属Windows桌面环境

Seelen-UI终极指南&#xff1a;5分钟打造你的专属Windows桌面环境 【免费下载链接】Seelen-UI The Fully Customizable Desktop Environment for Windows 10/11. 项目地址: https://gitcode.com/GitHub_Trending/se/Seelen-UI 想要彻底改造Windows 10/11的桌面体验吗&am…...

终极Redis可视化工具:Another Redis Desktop Manager完全使用指南

终极Redis可视化工具&#xff1a;Another Redis Desktop Manager完全使用指南 【免费下载链接】AnotherRedisDesktopManager &#x1f680;&#x1f680;&#x1f680;A faster, better and more stable Redis desktop manager [GUI client], compatible with Linux, Windows, …...

51单片机开发环境搭建指南:从Keil5安装到程序烧录全流程

1. 51单片机开发环境搭建全攻略 刚接触51单片机的朋友可能会被一堆陌生的名词搞懵——Keil5、CH340、HEX文件、烧录工具...别担心&#xff0c;我当初也是这样过来的。今天我就用最直白的语言&#xff0c;手把手带你搭建完整的开发环境。整个过程就像组装乐高积木&#xff0c;只…...

Pixel Language Portal保姆级教程:Hunyuan-MT-7B模型蒸馏轻量化(TinyMT)与移动端适配路径

Pixel Language Portal保姆级教程&#xff1a;Hunyuan-MT-7B模型蒸馏轻量化&#xff08;TinyMT&#xff09;与移动端适配路径 1. 项目背景与核心价值 Pixel Language Portal&#xff08;像素语言跨维传送门&#xff09;是一款基于腾讯Hunyuan-MT-7B大模型构建的创新翻译工具。…...

Llama-3.2-3B入门指南:Ollama部署详解,从安装到生成第一段文字

Llama-3.2-3B入门指南&#xff1a;Ollama部署详解&#xff0c;从安装到生成第一段文字 1. 认识Llama-3.2-3B&#xff1a;轻量级多语言文本生成专家 Llama-3.2-3B是Meta公司推出的开源大语言模型&#xff0c;属于Llama 3.2系列中的3B参数版本。这个模型特别适合需要快速响应和…...

98. 未使用的机器配置(rke-machine-config.cattle.io)在 Rancher v2.10+ 中会自动清理

Environment 环境 SUSE Rancher Prime v2.10.x till v2.11.x SUSE Rancher Prime v2.10.x 到 v2.11.xRKE2VMware vSphereAWS EC2 Situation 地理位置After upgrading to Rancher v2.10, VmwarevsphereConfigs created via Terraform (rancher2_machine_config_v2) are automa…...

从编译错误到版本管理:C语言“商人过河”游戏代码的现代化改造之旅

1. 从古董代码到现代项目&#xff1a;一场技术考古与修复之旅 第一次打开那份"商人过河"的C语言游戏代码时&#xff0c;我仿佛穿越回了二十年前。满屏的编译错误、过时的函数调用、混乱的格式&#xff0c;还有那些早已被现代编译器抛弃的写法。这让我想起刚入行时接手…...