实验三 Java面向对象高级编程
更新时间:2023-10-07 00:22:01 阅读量: 综合文库 文档下载
- 实验三中推荐度:
- 相关推荐
实验三 Java面向对象高级编程
一、实验目的
1. 掌握Java 面向对象编程技术
2. 能够使用继承创建子类并实现方法覆盖 3. 能够创建异类集合并使用多态
4. 能够创建抽象类和接口,并探究它们的多态特性
二、预备知识
1. JDK的安装设置:JDK/JRE/JVM; 2. Eclipse集成开发环境的绿色安装;
3. 掌握Java语言的面向对象特性(封装性、继承性、多态性); 4. 掌握Java语言的抽象类和接口。
三、实验描述
1. 实验类型:设计 2. 实验学时:4学时
3. 实验内容:2项(参照四)
四、实验内容
(1) 检查所使用的计算机系统:
1. 确认是否已安装JDK,并确认系统的环境变量设置; 2. 确认是否已绿色安装Eclipse集成开发环境。
(2) 实验内容一:使用继承和方法覆盖创建子类,并能够创建异类集合并使用多态 具体要求:
1. 在上述银行项目中,创建Customer类:
·位于包:com.mybank.domain中;
·向Customer类添加四个实例变量:firstName,lastName,accounts(Account对象数组,长度为10)和numberOfAccounts(记录accounts数组索引的一个整数);
·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户姓名、创建accounts数组和初始化accounts数组元素个数numberOfAccounts; ·添加getFirstName方法:该方法返回客户的firstName实例变量; ·添加getLastName方法:该方法返回客户的lastName实例变量;
·添加addAccount方法:该方法有一个形式参数(即Account对象),数组的下标通过实例变量numberOfAccounts实现递增,同时将该参数对象存储在accounts数组中; ·添加getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量; ·添加getAccount方法:该方法返回与指定的index数组下标相关的帐户对象。 2. 创建SavingsAccount类,该类是Account类的子类:
·位于包:com.mybank.domain中;
·向SavingsAccount类中添加interestRate实例变量;
·添加一个有两个参数的公有构造方法:initBalance和interestRate。调用父类构造方法传递initBalance参数,并初始化实例变量interestRate; ·添加accumulateInterest方法:用于计算客户的利息。
1
3. 创建CheckingAccount类,Account类的子类:
·位于包:com.mybank.domain中;
·向CheckingAccount类中添加overdraftAmount实例变量;
·添加一个有两个参数的公有构造方法:initBalance和overdraftAmount。调用父类构造方法传递initBalance参数,并初始化实例变量overdraftAmount;
·添加只有一个参数initBalance的另一个公有构造方法。用initBalance参数和overdraftAmount参数调用第一个构造方法,其中overdraftAmount参数使用默认值0.0; ·覆盖withdraw方法,方法参数为amount,balance变量继承于父类。下面是withdraw方法的伪码:
if (balance < amount) then
double overdraftNeeded = amount – balance if (overdraftAmount < overdraftNeeded) then transaction fails else
balance = 0.0
decrement overdraftAmount by overdraftNeeded else
decrement balance by amount 4. 创建TestBanking类:
·该类文件位于包:com.mybank.test ·该类有程序入口 main() 函数;
·要求:创建一名客户的若干个不同类型的账户信息,然后依次访问每一个账户,并根据不同类型的账户信息做出不同的操作。(要求使用instanceof运算符测试判断账户的类型信息,如果是SavingsAccount,则计算账户的利息;如果是CheckingAccount,则进行取钱操作,可以进行适当额度的透支); ·最后输出客户账户的余额信息。
(4) 实验内容二:能够创建抽象类和接口,并探究它们的多态特性 具体要求:
1. 创建项目:InterfaceProject;
2. 创建Animal类,该类是抽象类:
·声明一个受保护的整数实例变量legs,记录动物的腿的数目; ·定义一个受保护的构造方法来初始化legs实例变量; ·声明抽象方法eat;
·声明具体方法walk来显示与动物行走方式有关的信息(包括腿的数目); 3. 创建Pet接口:声明三个抽象方法:
public String getName();
public void setName(String n); public void play(); 4. 创建Spider类:
·Spider类扩展了Animal类;
·定义一个无参数构造方法,调用父类构造方法来指明所有蜘蛛都有八条腿; ·实现eat方法;
2
5. 创建Cat类:
·声明String实例变量来存储宠物的名字;
·定义一个构造方法,使用String参数来指定猫的名字;该构造方法必须调用父类构造方法来指明所有猫都有四条腿; ·另外定义一个无参数的构造方法,该构造方法调用上一个构造方法(使用this关键字)来传递一个空字符串作为参数; ·实现Pet接口方法; ·实现eat方法; 6. 创建Fish类:
·声明String实例变量来存储宠物的名字;
·定义一个无参数的构造方法,该构造方法调用父类构造方法来指明鱼没有腿; ·实现Pet接口方法;
·覆盖walk方法,该方法调用所有的超级方法,并打印输出一条说明鱼不会行走的消息;
·实现eat方法; 7. 创建TestAnimal类:
·该类有程序入口main()函数;
·创建并操作前面所创建的类的实例; ·调用每个对象中的方法; ·对象类型转换; ·使用多态特性;
·使用super关键字调用父类方法。
五、实验要求及总结
1. 结合上课内容,对上述程序先阅读,然后上机并调试程序,并对实验结果写出你自己的分析结论。
2. 整理上机步骤,总结经验和体会。 3. 完成实验报告和上交程序。 实验三1: 实验结果:
3
Account.java:
package com.mybank.domain; import com.mybank.test.*;
public class Account { // 创建Account类 private double balance; public void initBalance(double balance) { this.balance = balance; } public boolean deposit(double amt) { // deposit(double // amt),用于向帐户存钱,返回值是boolean型; if (amt > 0) { balance = balance + amt; return true; } else { return false; } }
4
}
public boolean withdraw(double amt) { // withdraw(double amt),用于从帐户取钱 if (balance > amt) { balance = balance - amt; return true; } else { return false; } }
public double getBalance() { // getBalance(),用于返回balance的值 return balance; }
Customer1.java:
package com.mybank.domain;
public class Customer1 {// 创建Customer1类 private String firstname; private String lastname; private Account accouts[] = new Account[10]; private int numberofaccout; public Customer1(String firstname, String lastname) {// 公有构造方法 this.firstname = firstname; this.lastname = lastname; numberofaccout = 0; } public String getFirstName() {// getFirstName方法:该方法返回客户的firstName实例变量; return firstname; } public String getLastName() {// getLastName方法:该方法返回客户的lastName实例变量; return lastname; } public void addaccout(Account accout) {// addAccount方法 accouts[numberofaccout] = accout; numberofaccout++;
5
正在阅读:
实验三 Java面向对象高级编程10-07
名校联考2019届九年级语文考试卷期中试卷21份合集05-08
答案在风中飘扬作文600字06-29
氨醇联产系统节能优化改造项目可研报告07-07
企业所得税随堂测验题三11-21
学校自然灾害救助应急预案07-10
小学三年级学生评语【 】最新3篇03-26
花生好车从车主的聊天中认识“凯越”07-29
电镀件外观及性能进货检验规范12-21
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 面向
- 对象
- 高级
- 编程
- 实验
- Java
- NET互操作 -
- 交流电机拖动复习试题
- 木工教案
- 环境保护、水土保持应急预案
- 果酒和果醋的制作知识清单及小练习
- 实验一 分治与递归算法的应用
- 基于ASPNET的校园二手拍卖系统的开发
- 压力表使用规范() - 图文
- 第八章 相关与回归分析习题
- 生活垃圾处理行业深度分析与“十三五”战略规划研究2018-2023年(目录) - 图文
- 数理统计试题
- 环境监测复习资料
- 郑州福友遥控车位锁合同书
- 保阜高速公路保定至阜平(冀晋界)段路基、桥涵工程施工组织设计
- 大型超市购物篮问题
- STM32全面学习总结 - 图文
- 国家知识产权局办公室关于开展2014年知识产权分析评议服务示范机构培育工作的通知全文-国家规范性文件
- 深度分析中国铁建沙特麦加轻轨项目41亿巨亏原因
- 对地方畜禽品种资源保护工作的思考
- 工程建设施工现场审核检查表