JAVA实验项目(一):JAVA面向对象特征性实验

Tips:"分享是快乐的源泉💧,在我的博客里,不仅有知识的海洋🌊,还有满满的正能量加持💪,快来和我一起分享这份快乐吧😊!

喜欢我的博客的话,记得点个红心❤️和小关小注哦!您的支持是我创作的动力!

JAVA实验项目(一):JAVA面向对象特征性实验

目录

  • JAVA实验项目(一):JAVA面向对象特征性实验
    • 实验项目一 Java面向对象特性实验
    • 一、实验目的
      • 1. 理解类的定义,掌握对象的创建与使用;
      • 2. 理解方法重载与继承的含义,学会使用方法重载;
      • 3. 学习创建子类对象 ,掌握方法重写的使用。
    • 二、实验内容
      • 1. 设计学生类Student,以及它的子类:本科生Undergraduate和研究生Graduate。各类的要求如下:
        • (1)定义类Student,属性有学号、姓名、出生日期、所属院系,提供getInfo()方法输出学生的属性信息。
        • (2)本科生Undergraduate和研究生Graduate是Student类的子类,本科生增加辅导员counselor属性,研究生增加导师supervisor属性,要求在Undergraduate和Graduate中重写Student的方法getInfo().
        • (3)在测试类中创建Undergraduate和Graduate实例,调用这些实例的getInfo()方法。
      • 2. 编写一个圆环类 Ring 的 Java 程序。圆环类有 3 个数据成员 , 分别是内半径 innerRadius, 外半径 outerRadius 和颜色 color, 这些属性可以查看 get 也可以重新设置 set, 另外 , 圆环还可以返回其面积 area。
      • 3. 编写一个 Java 程序 , 程序中有一个父类 Telephone,Telephone 类中包含有电话品牌、电话号码、通话时间、费率等属性 , 以及计算话费和显示信息等方法。另外 , 程序中还有另一个类叫作 Mobilephone, 它是 Telephone 的子类 , 除了具有 Telephone 类的属性外 , 它还有自己的属性如网络类型、被叫时间 , 同时它有自己的计算话费和显示信息的方法。 最后程序中应包含一个主类来使用上述两个类并显示它们的信息。
      • 4. 有Human、Chinese和American三个类:Human类具有姓、名和国籍3个属性,以及showNameInNativeLanguage()方法,该方法输出国籍;Chinese类中具有showNameInNativeLanguage()方法,输出中国人的国籍,并用中文输出其姓、名;American类中具有showNameInNativeLanguage()方法,输出美国人的国籍,并用英文输出其姓、名。
    • 三、实验原理
      • 1、类的继承原理;
      • 2、比较方法重载和方法重写。
    • 四、实验环境
    • 五、实验步骤
      • 1、创建包
      • 2、创建主类
      • 3、创建测试类
    • 六、实验结果
    • 七、实验分析
      • 1. 设计学生类Student,以及它的子类:本科生Undergraduate和研究生Graduate。各类的要求如下:
        • (1)定义类Student,属性有学号、姓名、出生日期、所属院系,提供getInfo()方法输出学生的属性信息。
        • (2)本科生Undergraduate和研究生Graduate是Student类的子类,本科生增加辅导员counselor属性,研究生增加导师supervisor属性,要求在Undergraduate和Graduate中重写Student的方法getInfo().
        • (3)在测试类中创建Undergraduate和Graduate实例,调用这些实例的getInfo()方法。
      • 2.编写一个圆环类 Ring 的 Java 程序。圆环类有 3 个数据成员 , 分别是内半径 innerRadius, 外半径 outerRadius 和颜色 color, 这些属性可以查看 get 也可以重新设置 set, 另外 , 圆环还可以返回其面积 area。
        • (1) 现在请将程序 Ring.java 中的语句
        • (2) 接着为程序添加一个如下所示的默认构造函数 , 观察程序运行是否还有上述错误发生。
        • (3) 请把程序中的如下语句 :
        • (4)现在请为该圆环类 Ring 再添加两个方法以便能返回内圆和外圆的周长 , 然后在主函数 main() 中分别创建两个对象 ring1,ring2 以显示周长。
      • 3.编写一个 Java 程序 , 程序中有一个父类 Telephone,Telephone 类中包含有电话品牌、电话号码、通话时间、费率等属性 , 以及计算话费和显示信息等方法。另外 , 程序中还有另一个类叫作 Mobilephone, 它是 Telephone 的子类 , 除了具有 Telephone 类的属性外 , 它还有自己的属性如网络类型、被叫时间 , 同时它有自己的计算话费和显示信息的方法。 最后程序中应包含一个主类来使用上述两个类并显示它们的信息。
        • (1) 在 Mobilephone 类的 display() 方法中有如下语句 :
        • (2) 子类 Mobilephone 的构造函数中有语句 super(b,num): 请指出该语句的作用。 然后请将该语句删除掉 , 编译运行程序 , 看看是否会出现如图 6-3 所示的编译错误 , 并分析原因。
        • (3) 要调用父类的构造函数可以用 super 关键字 , 而要调用本类自己的构造函数可以用 this 关键字 , 请试着在 Telephone 类中加入一个构造函数如下 :
        • (4) 现在请以 Telephone 类为父类 , 设计一个新的子类叫作小灵通 , 这个小灵通继承了 Telephone 类的属性 , 但又与移动电话有所区别。
      • 4. 有Human、Chinese和American三个类:Human类具有姓、名和国籍3个属性,以及showNameInNativeLanguage()方法,该方法输出国籍;Chinese类中具有showNameInNativeLanguage()方法,输出中国人的国籍,并用中文输出其姓、名;American类中具有showNameInNativeLanguage()方法,输出美国人的国籍,并用英文输出其姓名。要求编程实现这些类以及测试类,创建Chinese 和American类的实例,并输出这些实例的属性信息。

实验项目一 Java面向对象特性实验

一、实验目的

1. 理解类的定义,掌握对象的创建与使用;

2. 理解方法重载与继承的含义,学会使用方法重载;

3. 学习创建子类对象 ,掌握方法重写的使用。

二、实验内容

1. 设计学生类Student,以及它的子类:本科生Undergraduate和研究生Graduate。各类的要求如下:

(1)定义类Student,属性有学号、姓名、出生日期、所属院系,提供getInfo()方法输出学生的属性信息。
(2)本科生Undergraduate和研究生Graduate是Student类的子类,本科生增加辅导员counselor属性,研究生增加导师supervisor属性,要求在Undergraduate和Graduate中重写Student的方法getInfo().
(3)在测试类中创建Undergraduate和Graduate实例,调用这些实例的getInfo()方法。

2. 编写一个圆环类 Ring 的 Java 程序。圆环类有 3 个数据成员 , 分别是内半径 innerRadius, 外半径 outerRadius 和颜色 color, 这些属性可以查看 get 也可以重新设置 set, 另外 , 圆环还可以返回其面积 area。

3. 编写一个 Java 程序 , 程序中有一个父类 Telephone,Telephone 类中包含有电话品牌、电话号码、通话时间、费率等属性 , 以及计算话费和显示信息等方法。另外 , 程序中还有另一个类叫作 Mobilephone, 它是 Telephone 的子类 , 除了具有 Telephone 类的属性外 , 它还有自己的属性如网络类型、被叫时间 , 同时它有自己的计算话费和显示信息的方法。 最后程序中应包含一个主类来使用上述两个类并显示它们的信息。

4. 有Human、Chinese和American三个类:Human类具有姓、名和国籍3个属性,以及showNameInNativeLanguage()方法,该方法输出国籍;Chinese类中具有showNameInNativeLanguage()方法,输出中国人的国籍,并用中文输出其姓、名;American类中具有showNameInNativeLanguage()方法,输出美国人的国籍,并用英文输出其姓、名。

要求编程实现这些类以及测试类,创建Chinese 和American类的实例,并输出这些实例的属性信息。

三、实验原理

1、类的继承原理;

2、比较方法重载和方法重写。

四、实验环境

电脑主机酷睿i5、内存4G以上,操作系统Windows 7以上,开发工具Myeclipse 2015。

五、实验步骤

1、创建包

2、创建主类

3、创建测试类

六、实验结果

七、实验分析

1. 设计学生类Student,以及它的子类:本科生Undergraduate和研究生Graduate。各类的要求如下:

(1)定义类Student,属性有学号、姓名、出生日期、所属院系,提供getInfo()方法输出学生的属性信息。

在这里插入图片描述

(2)本科生Undergraduate和研究生Graduate是Student类的子类,本科生增加辅导员counselor属性,研究生增加导师supervisor属性,要求在Undergraduate和Graduate中重写Student的方法getInfo().

本科生Undergraduate:

研究生Graduate
在这里插入图片描述

(3)在测试类中创建Undergraduate和Graduate实例,调用这些实例的getInfo()方法。

学生测试类
在这里插入图片描述
在这里插入图片描述

本科生测试类
在这里插入图片描述
在这里插入图片描述

研究生测试类
在这里插入图片描述
在这里插入图片描述

2.编写一个圆环类 Ring 的 Java 程序。圆环类有 3 个数据成员 , 分别是内半径 innerRadius, 外半径 outerRadius 和颜色 color, 这些属性可以查看 get 也可以重新设置 set, 另外 , 圆环还可以返回其面积 area。

Ring基础类
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试类
在这里插入图片描述
在这里插入图片描述

思考1:

(1) 现在请将程序 Ring.java 中的语句

Ring ring=new Ring (5,8,“red”);
改成
Ring ring=new Ring ();
修改后编译运行 , 此时有错误发生吗 ? 分析错误的原因。
解答如下:
在这里插入图片描述

会报错,因为在主类Ring中构造的是带参方法,因而此处创建对象必须进行赋值操作

(2) 接着为程序添加一个如下所示的默认构造函数 , 观察程序运行是否还有上述错误发生。

public Ring (){
innerRadiusz=1.0, outerRadius=2.0; color=“white”;
解答如下:
在这里插入图片描述

会报错,因为在主类Ring中构造的是带参方法,因而此处进行赋值操作时要以传参的形式赋值

(3) 请把程序中的如下语句 :

System.out.println(" 圆环的内半径 :“+ring.getInnerRadius());
system.out.println(“圆环的外径 :”+ring.getouterRadius());
改成
System.out.println(" 圆环的内半径 :“+ring-innerRadius()),
system.out.println(” 圆环的外半径 :"+ring-outerRadius());
修改后编译 , 此时程序运行结果如何 , 应如何修改这个错误。
解答如下;
在这里插入图片描述

会报错,因为在主类Ring中innerRadius和outerRadius由private关键字修饰,因此访问权限受到限制,在获取成员变量数值时只能由对新创建的对象ring调用getXx()函数

(4)现在请为该圆环类 Ring 再添加两个方法以便能返回内圆和外圆的周长 , 然后在主函数 main() 中分别创建两个对象 ring1,ring2 以显示周长。

解答如下:
在主类Ring中创建两个内外周长方法
在这里插入图片描述

创建对象
在这里插入图片描述

预期结果
在这里插入图片描述

3.编写一个 Java 程序 , 程序中有一个父类 Telephone,Telephone 类中包含有电话品牌、电话号码、通话时间、费率等属性 , 以及计算话费和显示信息等方法。另外 , 程序中还有另一个类叫作 Mobilephone, 它是 Telephone 的子类 , 除了具有 Telephone 类的属性外 , 它还有自己的属性如网络类型、被叫时间 , 同时它有自己的计算话费和显示信息的方法。 最后程序中应包含一个主类来使用上述两个类并显示它们的信息。

Telephone

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
Mobilephone
在这里插入图片描述
在这里插入图片描述

Inheritance测试类
在这里插入图片描述
在这里插入图片描述

思考2:

(1) 在 Mobilephone 类的 display() 方法中有如下语句 :

System.out.println(" 话费 :"+callcost()),
试问这里调用的是子类自己的 callcost() 还是其父类的 callcost(); 如果想要在此处调用父类的 calicost() 应如何处理。 ( 提示 : 使用 super 关键字 )
解答如下:
创建测试包
在这里插入图片描述

父类:
在这里插入图片描述

子类
在这里插入图片描述

测试子类
在这里插入图片描述

结果显示
在这里插入图片描述

调用父类用super()

(2) 子类 Mobilephone 的构造函数中有语句 super(b,num): 请指出该语句的作用。 然后请将该语句删除掉 , 编译运行程序 , 看看是否会出现如图 6-3 所示的编译错误 , 并分析原因。

事实上 , 如果在子类的构造函数中不显式地使用 super 来调用父类的构造函数的话 ,那么系统将自动调用父类的无参或默认的构造函数。因此为了纠正这个错误 , 可试着在 Telephone 类中加入一个无参的构造函数。

(3) 要调用父类的构造函数可以用 super 关键字 , 而要调用本类自己的构造函数可以用 this 关键字 , 请试着在 Telephone 类中加入一个构造函数如下 :

Telephone (String b ,String n,double r){
this(b,n);
rate =r;
}
然后在主程序中用这个构造函数来创建一个 Telephone 对象 , 看看它能否起作用。

(4) 现在请以 Telephone 类为父类 , 设计一个新的子类叫作小灵通 , 这个小灵通继承了 Telephone 类的属性 , 但又与移动电话有所区别。

4. 有Human、Chinese和American三个类:Human类具有姓、名和国籍3个属性,以及showNameInNativeLanguage()方法,该方法输出国籍;Chinese类中具有showNameInNativeLanguage()方法,输出中国人的国籍,并用中文输出其姓、名;American类中具有showNameInNativeLanguage()方法,输出美国人的国籍,并用英文输出其姓名。要求编程实现这些类以及测试类,创建Chinese 和American类的实例,并输出这些实例的属性信息。

Human
在这里插入图片描述

Chinese
在这里插入图片描述

ChineseDemo
在这里插入图片描述
在这里插入图片描述

American
在这里插入图片描述

AmericanDemo
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

月入8.5k,计算机应届生转行网优,就业难,不妨另辟蹊径!

随着2024年毕业生人数的预计达到惊人的1179万,就业市场的竞争愈发激烈。作为即将踏入社会的毕业生,如何做好准备,减轻自己的就业压力,成为了摆在我们面前的一大难题。 今天主人公是一位刚毕业的22岁大学生小L,河南郑州…

docker 部署 prometheus + Grafana +

# prometheus安装 # 1.拉镜像 docker pull prom/prometheus:v2.43.0 # 2.创建配置文件 mkdir /opt/prometheus/data cd /opt/prometheus/ vi prometheus.yml # 3.使用root用户启动 docker run --name prometheus -d -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/pro…

数据结构与算法-排序算法2-选择排序

目录 1.选择排序: 1.介绍: 2.动态图解 3.举例 4.小结选择排序规则 5.选择排序代码 6.运行时间 代码: 运行结果: 1.排序算法简介 排序也称为排序算法。排序是将一组数据依据指定的顺序进行排列的过程。 2.常见的排序算法…

Django图书馆综合项目-学习(2)

接下来我们来实现一下图书管理系统的一些相关功能 1.在书籍的book_index.html中有一个"查看所有书毂"的超链接按钮,点击进入书籍列表book_list.html页面. 这边我们使用之前创建的命名空间去创建超连接 这里的book 是在根路由创建的namespacelist是在bo…

图搜索算法-最短路径算法-戴克斯特拉算法

相关文章: 数据结构–图的概念 图搜索算法 - 深度优先搜索法(DFS) 图搜索算法 - 广度优先搜索法(BFS) 图搜索算法 - 拓扑排序 最短路径算法 自从有了导航,人们再也不怕去陌生地方,说走就走的旅…

mysql查询优化索引篇

其实在写这篇文章之前,也对查询优化做过一些设置,但这次则更为具体一点,之前做的无非就是增加查询字段的索引,让select里和where里的内容全部都包含在索引内(覆盖索引不走回表的基本概念),但这次这么做的时候发现了一些问题,这也是我接下来要提到的,而且之前使用的是sqlserver的…

【生信技能树】GEO数据挖掘全流程

R包的安装,每次做分析的时候先运行这段代码把R包都安装好了,这段代码不需要任何改动,每次分析直接运行。 options("repos""https://mirrors.ustc.edu.cn/CRAN/") if(!require("BiocManager")) install.packag…

苹果M4芯片:大模型本地运算的转折点

在人工智能和机器学习领域,大模型的兴起对硬件提出了前所未有的挑战。苹果公司最近推出的M4芯片,被视为其在这场竞赛中的“第一式”。本文将探讨M4芯片的特点,并与其他芯片进行比较。 M4芯片的亮点 Neural Engine算力:M4芯片的…

OpenStack虚拟机管理实例

前言:本博客仅作记录学习使用,部分图片出自网络,如有侵犯您的权益,请联系删除 目录 一、OpenStack计算服务 1、什么是Nova 2、Nova所用的虚拟技术 3、Nova的系统架构 4、虚拟机实例化流程 一、示例 1、验证Nova服务 2、试…

柔性数组+结构体类型转换

柔性数组&#xff1a;在结构体中声明的时候仅作为占位符&#xff0c;好处是地址是连续的 强制类型转换&#xff1a;可用于通信双方进行信息交流 #include <iostream> #include <string.h>struct DataWater {int count;float size;char buf[0]; }; // dbuf相当于是…

传输文件协议FTP与LFTP

目录 一.简介 二. FTP基础 主动模式&#xff08;Active Mode&#xff09;&#xff1a; 被动模式&#xff08;Passive Mode&#xff09;&#xff1a; 三. Vsftp 服务器简介 四. Vsftpd配置 1. 安装vsftpd&#xff08;ftp服务端&#xff09; 2.编辑配置文件 &#xff08;…

视频汇聚管理/安防监控系统EasyCVR如何开启和调用验证码登录接口?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视…

【补充】图神经网络前传——Node2vec

Node2Vec【图神经网络论文精读】_哔哩哔哩_bilibili 解决的问题&#xff1a;图嵌入 把每一个节点编码成一个d维的低维、稠密&#xff08;不是one-hot&#xff09;、连续&#xff08;不是离散的&#xff0c;是实数->有助于保存更多的信息&#xff09;向量&#xff0c;并且&a…

安装Tomcat

下载 Tomcat 软件包 前往 Apache Tomcat 官网:Apache Tomcat - Apache Tomcat 10 Software Downloads在网站上找到最新版本的 Tomcat&#xff0c;选择下载对应的压缩包&#xff08;通常是 .zip 或 .tar.gz 格式&#xff09;。下载完成后&#xff0c;解压缩到您选择的目录。 配…

【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手

文章目录 一、前言二、绘制效果三、ConstraintLayout 使用方法3.1 创建布局文件3.2 替换配置3.3 设置约束&#xff0c;步骤13.4 设置约束&#xff0c;步骤23.5 其他设置 四、结束 一、前言 在进行Android APP开发过程中&#xff0c;减少layout嵌套即可改善UI的绘制性能&#x…

考研数学|强化《660》+《880》这样刷,太丝滑了❗️

660题880题需要大概两个月才能做完 660题和880题都是很高质量的题集&#xff0c;所以做起来一点也不轻松。 每年都会有学生暑假两个月只做了一本660题的情况&#xff0c;因为题目实在是太难&#xff0c;有点做不下去的感觉。 不过不要担心&#xff0c;暑假就是刷题发现问题的…

一个小调整,竟然让交换机、路由器的CPU占用率降低了50%

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 下午好&#xff0c;我的网工朋友。 在信息时代下&#xff0c;不仅仅在网络工程领域&#xff0c;高CPU占用率都是一个非常常见的问题&#xff0c;…

ESP32-S3+86盒线控器方案,含开发时问题技术解答

随着智能家居产品越来越多&#xff0c;线控器应用也加大&#xff0c;86盒线控器跟智能吹风机联动&#xff0c;跟中央空调联动&#xff0c;下面讲下ESP32-S386盒线控器方案在开发中遇到的问题。 一、ESP32-S386盒线控器方案&#xff1a; 1、无需网关&#xff0c;可以直接连家里…

Flutter 玩转动画 + 自定义View 实现积分或金币领取流程动画

一、效果图 二、主要涉及的知识点 AnimationController、Animation、FractionalTranslation 动画Api的运用CustomPainter 自定义View以及每个时机的把握 主要是写篇博客来记录一下这个功能的实现&#xff0c;具体代码就看源代码了&#xff0c;有疑问可以私信沟通 源代码下载…

【高阶数据结构】并查集 {并查集原理;并查集优化;并查集实现;并查集应用}

一、并查集原理 在一些应用问题中&#xff0c;需要将n个不同的元素划分成一些不相交的集合。开始时&#xff0c;每个元素自成一个单元素集合&#xff0c;然后按一定的规律将归于同一组元素的集合合并。在此过程中要反复用到查询某一个元素归属于那个集合的运算。适合于描述这类…