面向对象——Java实验报告
实验三:
Java面向对象(二)
实验三 面向对象(二)(预习报告)
<center>
<strong>姓名:</strong>
<u>XXX</u>
  
<strong>班级:</strong>
<u>XXXXX</u>
  
<strong>学号:</strong>
<u>XXXXXXXXXXXX</u></center>
一、实验目标
(1)能够运用Java语言来实现类的继承及多态性、熟练使用包来扩展程序功能并能建立自己的包;
(2)能够灵活运用Java语言的抽象方法、接口、抽象类来编写应用程序解决实际问题。
二、实验环境
IntelliJ IDEA Community Edition 2021.1 x64 + openjdk-16.0.1
三、实验准备
- 设计一个抽象类图形类,在该类中包含有至少三个抽象方法,分别用于求周长、求面积,以及对图形进行描述(如,“这是**形状,周长是**,面积是**”),分别定义圆形类、长方形类、等边三角形类来继承图形类,实现上述三个方法,并创建实例验证。
问题分析: 由题可得出以下结构
abstract class Shape { //抽象类图形类 public abstract double calculatePerimeter (); //周长 public abstract double calculateSquare (); //面积 public abstract void describe ();} //描述 class Round extends Shape { //圆形类 @Override public double calculatePerimeter() ; @Override public double calculateSquare() ; @Override public void describe() ;} // 长方形类和等边三角形类操作同上
- 定义一个抽象接口
Lecture
,接口中至少有两个抽象方法talk()
与homework()
,分别定义Student
类与Teacher
类实现Lecture
接口,Student
类的talk()
方法用于模拟学生回答问题,Teacher
类的talk()
方法用于模拟老师提出问题,Student
类的homework ()
方法用于模拟学生写作业,Teacher
类的homework ()
方法用于模拟老师布置作业。
问题分析: 由题可得出以下结构
interface Lecture { //接口 public abstract void talk (); //talk()方法 public abstract void homework ();}//homework()方法 class Student implements Lecture { //Student类 @Override public void talked(); @Override public void homework(); //Teacher类同上
- 定义一个抽象接口,该接口用于求和与统计数量。定义两个奇数类与偶数类实现上述接口,分别可以求100以内的奇数的和,统计100以内的奇数个数,以及求100以内的偶数的和,统计100以内的偶数个数。
问题分析: 由题可得出以下结构
interface Countable { //接口 public abstract int sum (); //求和 public abstract int count ();} //统计 // 偶数 class Even implements Countable { @Override public int sum() ; //求和操作 @Override public int count() ;//统计操作
- 定义一个抽象类动物类,同时定义抽象接口:进食接口、睡觉接口、思考接口、说话接口、行走接口、游泳接口、飞翔的接口。分别定义猫类、人类、鸟类、鱼类继承动物类,同时,根据实际情况,选择性实现上述接口,并创建实例验证。
问题分析: 由题可得出以下结构
abstract class Animal {public abstract void breathe ();} //抽象动物类 interface AbleToEat {public abstract void eat ();} //进食接口 interface AbleToSleep {public abstract void sleep ();}//睡觉接口 interface Thinkable {public abstract void think ();} //思考接口 interface Speakable {public abstract void speak ();} //说话接口 interface Walkable {public abstract void walk ();} //行走接口 interface AbleToSwim {public abstract void swim ();} //游泳接口 interface Flyable {public abstract void fly ();} //飞翔的接口 class Cat extends Animal implements AbleToEat, AbleToSleep, Thinkable, Speakable, Walkable { //猫类 @Override public void breathe() ; @Override public void eat() ; @Override public void sleep(); @Override public void think() ; @Override public void speak(); @Override public void walk(); //鱼类,人类,鸟类同上操作
四、预习遇到的问题
对于相关知识熟悉度并不太充足,相关知识欠缺,应该尽力去尝试相关内容来训练去充分熟悉。对于接口以及抽象类的相关理解存在部分疑问。希望在实验中能通过各中渠道去学习并掌握相关知识。