Java面向对象程序设计实验报告(实验二 面向对象基础练习)

news2024/11/18 18:40:58

 ✨作者:命运之光 
✨ 专栏:Java面向对象程序设计实验报告

目录

✨一、需求设计

✨二、概要设计

✨三、详细设计

✨四、调试结果

✨五、测试结果

✨附录:源程序代码(带注释)

测试类demo2

Address类

Employee类


实验二 面向对象基础练习

实验环境:Eclipse+JDK

实验目的:

1.掌握面向对象的编程思想;

2.掌握类和对象的定义及使用;

3.掌握封装的使用。(成员变量私有化(private)设置)

实验内容:

1.定义并测试一个代表员工的Employee类。员工属性包括“编号”、“姓名”、“基本薪水”、“薪水增长额”;还包括 “计算增长后的工资总额”。

2.编写并测试一个代表地址的Address类,地址信息由:国家,省份,城市,街道,邮编组成,并可以返回完整的地址信息。

 


以下是实验报告内容

✨✨前言:由于五一假期导致最后一节Java上机实验课没有上,所以不是很清楚实验报告的具体要求,我就按照之前数据结构实验报告的格式写了这次的Java上级报告,有需要的还是直接复制粘贴就行了,不过这次我写的比较敷衍,自己要上交实验报告的话,最好还是稍微修改美化一下🦄。

✨一、需求设计

1.定义并测试一个代表员工的Employee类。员工属性包括“编号”、“姓名”、“基本薪水”、“薪水增长额”;还包括 “计算增长后的工资总额”。

2.编写并测试一个代表地址的Address类,地址信息由:国家,省份,城市,街道,邮编组成,并可以返回完整的地址信息。

✨二、概要设计

建立三个Java类,一个为测试类,一个为第一题的Employee类,一个为第二题的Address类。将Employee类和Address类的属性设置为私有属性,构造空参与无参构造,用set()和get()方法来输入输出值,在Employee类中创建薪水增长率方法来实现薪水增长率。

三、详细设计

新建一个class类类名为Employee,依据题意定义私有成员属性“编号”、“姓名”、“基本薪水”、“薪水增长额”,分别为:

    private String id;

    private String name;

    private double money;

    private double rise;

写入set(),get()方法

 public void setId(String id) {

        this.id = id;

    }

    public void setName(String name) {

        this.name = name;

    }



    public void setMoney(double money) {

        this.money = money;

    }



    public String getId() {

        return id;

    }



    public String getName() {

        return name;

    }

    public double getMoney() {

        return money;

    }

最后定义薪水增长额方法

public double giverise(double rise) {

        return rise * money;

    }

Employee类设计完毕。

新建一个class类类名为Address,依据题意定义私有成员属性为国家,省份,城市,街道,邮编分别为:

    private String country;

    private String province;

    private String city;

    private String street;

    private String code;

写入set(),get()方法

    public void setCountry(String country) {

        this.country = country;

    }

    public void setProvince(String province) {

        this.province = province;

    }

    public void setCity(String city) {

        this.city = city;

    }

    public void setCode(String code) {

        this.code = code;

    }

    public void setStreet(String street) {

        this.street = street;

    }

    public String getCountry() {

        return country;

    }

    public String getProvince() {

        return province;

    }

    public String getCity() {

        return city;

    }

    public String getCode() {

        return code;

    }

    public String getStreet() {

        return street;

}

写入空参和无参构造分别为:

public Address(){}//空参构造

    public Address(String country,String province,String city,String street,String code)

    {

        //全参构造

        this.country=country;

        this.province=province;

        this.city=city;

        this.street=street;

        this.code=code;

    }

Address类设计完毕。

四、调试结果

第一题输入测试样例为:

雇员编号为10001

雇员姓名为ZhangSan

基本工资为1800.0

第二题输入测试样例为:

国家为中国

省份为陕西

城市为渭南

街道为ABC,

邮政编码为612000

调试结果截图如下:

五、测试结果

依据实验要求依此传入值,雇员编号为7369,雇员姓名为SMITH,基本工资为1500.0。以下为测试结果截图:

 

依据实验要求依此传入值,国家为中国,省份为陕西,城市为西安市,街道为MDXY,邮政编码为710000。以下为测试结果截图:

 

附录:源程序代码(带注释)

测试类demo2

package 命运之光;

public class demo2 {

    public static void main(String[] args) {

        Employee e=new Employee();//空参创建

        e.setId("7369");

        e.setName("SMITH");

        e.setMoney(1000.0);//基本薪水

        System.out.println("-------第一题-------");

        System.out.println("雇员编号:"+e.getId());

        System.out.println("雇员姓名:"+e.getName());

        System.out.println("基本工资:"+e.giverise(1.5));//基本工资=基本薪水*薪水增长率

        System.out.println("-------第二题-------");

        Address a=new Address();//空参创建

        a.setCountry("中国");

        a.setProvince("陕西");

        a.setCity("西安市");

        a.setStreet("MDXY");

        a.setCode("710000");

        System.out.println("国家:"+a.getCountry());

        System.out.println("省份:"+a.getProvince());

        System.out.println("城市:"+a.getCity());

        System.out.println("街道:"+a.getStreet());

        System.out.println("邮政编码:"+a.getCode());  

    }



}

Address类

package 命运之光;

public class Address {

    private String country;

    private String province;

    private String city;

    private String street;

    private String code;

    public Address(){}//空参构造

    public Address(String country,String province,String city,String street,String code)

    {

        //全参构造

        this.country=country;

        this.province=province;

        this.city=city;

        this.street=street;

        this.code=code;

    }

    public void setCountry(String country) {

        this.country = country;

    }

    public void setProvince(String province) {

        this.province = province;

    }

    public void setCity(String city) {

        this.city = city;

    }

    public void setCode(String code) {

        this.code = code;

    }

    public void setStreet(String street) {

        this.street = street;

    }

    public String getCountry() {

        return country;

    }

    public String getProvince() {

        return province;

    }

    public String getCity() {

        return city;

    }

    public String getCode() {

        return code;

    }

    public String getStreet() {

        return street;

    }

}

Employee类

package 命运之光;

public class Employee {

    private String id;

    private String name;

    private double money;

    private double rise;

    public Employee(){

        //空参构造

    }

    public Employee(String id,String name,double money,double rise)

    {

        //全参构造

        this.id = id;

        this.name = name;

        this.money = money;

        this.rise=rise;

    }

    public void setId(String id) {

        this.id = id;

    }

    public void setName(String name) {

        this.name = name;

    }



    public void setMoney(double money) {

        this.money = money;

    }



    public String getId() {

        return id;

    }



    public String getName() {

        return name;

    }

    public double getMoney() {

        return money;

    }

    public double giverise(double rise) {

        return rise * money;

    }

}

 

 点击下方个人名片,可添加博主的个人QQ,交流会更方便哦~
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓

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

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

相关文章

Docker之DockerFile相关基础知识

DockerFile相关基础知识 一、Docker镜像原理1、操作系统组成部分1.1 七大子系统1.2 Linux文件系统 2、Docker镜像原理介绍2.1 原理图2.2 Docker镜像本质2.3 统一文件系统2.4 复用性2.5 统一性 二、容器转为镜像1、Docker镜像的制作1.1 容器转换为镜像1.2 镜像转为压缩文件1.3 导…

【SpringBoot】三:访问数据库

文章目录 1.DataSource2.JdbcTemplate2.1 准备环境2.2 准备表和数据2.3 配置数据源2.4 JdbcTemplate访问mysql2.5 创建实体类 ArticlePO2.6 测试2.6.1 测试聚合函数 3.mybatis3.1 单表CRUMD3.1.1 创建模块3.1.2 查询3.1.3 插入3.1.4 更新3.1.5 删除 3.2 ResultMap3.3 SQL 提供者…

Elasticsearch 集群部署管理

Elasticsearch 集群配置版本均为8以上 安装前准备 CPU 2C 内存4G或更多 操作系统: Ubuntu20.04,Ubuntu18.04,Rocky8.X,Centos 7.X 操作系统盘50G 主机名设置规则为nodeX.qingtong.org 生产环境建议准备单独的数据磁盘主机名 #各自服务器配置自己的主机名 hostnamectl set-ho…

【2023/05/17】smalltalk

Hello!大家好,我是霜淮子,2023倒计时第12天。 Share His own morning are new surprises to God. 译文: 神自己的清晨,在他自己看来也是新奇的。 Life finds its wealth by the claims of the world,and its worth…

基于UIAutomation+Python+Unittest+Beautifulreport的WindowsGUI自动化测试框架

1 main.py主入口 # -*- coding:utf-8 -*- # 作者:虫无涯 # 日期:2023/2/17 # 文件名称:main.py # 作用:框架的主入口函数# codingutf-8import time from common.reportOut import report_out from common.logOut import log_out …

Wandb.init和wandb.sweep的使用准则

目录 在使用 wandb.init() 初始化函数时,你可以包含以下信息: 如果在同一个代码中多次调用 wandb.init(),可能会导致以下问题: 如果你在一个大文件中使用了 wandb.init(),并且想在其他小文件中使用 wandb.log() 来记…

docker-compose部署sonarqube开源代码审计和分析平台

生成文件夹 mkdir -p /docker/sonar/postgres/postgresql mkdir -p /docker/sonar/postgres/datamkdir -p /docker/sonar/sonarqube chmod 777 -R /docker/sonar/sonarqube echo "vm.max_map_count262144" > /etc/sysctl.conf sysctl -p 创建docker-compose.yml文…

Kuberentes,k8s诞生简介

一、前言 什么是k8s? Kuberentes 是基于容器的集群管理平台,它的简称,是K8S。有人说之所以叫k8s,是因为k到s中间有8个字母,因此叫k8s,也有人说,在使用k8s的安装配置流程中,共分为8…

6年测开经验面试十家大厂,整理出来的笔记...

我第一次接触自动化是在2016年。那时刚毕业一年有余,组内一直做手工功能测试,大概在2018年9月,部门领导要求测试组引入自动化。组内之前从没有开展过任何自动化,测试主管安排了一个刚入职不久的研究生同事去研究。 当时自己内心还…

STM32独立按键扫描,支持同时按下、长按、快速键值

背景 有个项目在实际应用中,采用8个独立按键,每个按键都赋予不同功能,实际使用过程中很多时候都是需要比较特殊的按键操作,例如:长按10s按键、长按5s按键,或者长按需要有快速按键值的反馈,这个…

wordcloud背景图多图形演示

文章目录 前言一、问题二、多图层1.部分重叠1.1背景图1.2词云图 2.完全重叠2.1背景图2.2词云图 3.不重叠3.1背景图3.2词云图 三、不同形状1.背景图2.词云图 四、代码总结 前言 大家好,我是空空star,本篇给大家分享一下wordcloud背景图多图形演示。 一、问…

网络安全真的那么好吗?

近几年,随着网络安全被列为国家安全战略的一部分,这个曾经细分的领域发展提速了不少,除了一些传统安全厂商以外,一些互联网大厂也都纷纷加码了在这一块的投入,随之而来的吸引了越来越多的新鲜血液不断涌入。 网络安全…

多源环境(QGIS\PostgreSQL\ARCGIS\MAXENT\R语言)支持下的SolVES 模型生态系统服务功能社会价值评估

生态系统服务是人类从自然界中获得的直接或间接惠益,可分为供给服务、文化服务、调节服务和支持服务4类,对提升人类福祉具有重大意义,且被视为连接社会与生态系统的桥梁。自从启动千年生态系统评估项目(Millennium Ecosystem Asse…

Python自动化测试实现的思路及方法

Python自动化测试常用于Web应用、移动应用、桌面应用等的测试 Python自动化实现思路通常分为以下几步: 1. 确定自动化测试的范围和目标: 首先需要明确需要进行自动化测试的范围和目标,包括测试场景、测试用例、测试数据等。 2. 选择自动化测…

Kubernetes第2天

第四章 实战入门 本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。 Namespace ​ Namespace是kubernetes系统中的一种非常重要资源,它的主要作用是用来实现多套环境的资源隔离或者多租户的资源隔离。 ​ 默认情况下&…

机器学习——决策树原理及CART算法

问:CART决策树可以有多个分支结构。 答:错误。CART决策树每个内部节点只能有两个分支结构,这些分支分别对应于二进制判定的是或否。因此,CART决策树的每个节点将数据集分成两个较小的子集,其中一个子集满足某种特定条…

【系分知识】需求评审

目录 背景介绍标题目的与意义方法与流程成果展示 背景介绍 软件开发是一项复杂的工作,需要涉及到众多的人员和团队。在这个过程中,需求评审是保证项目质量和进度的关键环节。它是在项目启动之前,对所有的需求进行全面的评估和审查&#xff0c…

C#异步编程之数据并行及任务并行

基于Parallel.ForEach的数据并行使用 1.数据非并行 var items new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; DateTime t1 DateTime.Now; foreach (var item in items) {Console.WriteLine("数据非并行输出:{0}", item); } 2.数据并行,只要使用Parallel.ForEach P…

Unity UI -- (2) 给场景加一个标题

添加Text并将其放到正中位置 我们来增加项目的第一个UI元素:标题。 1. 在Hierarchy中,点击右键,选择UI > Text - TextMeshPro。如果弹出了一个TextMeshPro Importer窗口,选择Import TMP Essentials。TextMeshPro(TM…

优雅地处理参数传递:Spring Boot中的技巧

目录 一:四种传参方式 1.1:在 URL 中传递参数 1.2:PathVariable 传递参数(Restful 风格) 1.3:在请求体中传递参数 1.4:在请求头中传递参数 二:文件上传接口测试 2.1 : test.jav…