面向对象程序设计II(Java)实验报告(1)-复习
编程题
- 类的继承(编程题)
要求:
(1)定义一个基类Shape,包含受保护的成员变量radius,及其相应的get/set方法,以及一个包含有一个参数的构造器;
(2)定义基类的派生类,圆柱类Cylinder,加入一个新的私有变量height,及其相应的get/set方法,以及一个包含有两个参数的构造器;并创建一个公有的成员方法volume,能够计算并返回圆柱体的体积。
主函数中的内容如下:
Cylinder c = new Cylinder(1,1);
System.out.println(c.volume());
提示: 圆柱体体积的计算公式为 3.14半径的平方高
class Shape {
private int radius;
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius = radius;
}
public Shape(int radius) {
this.radius = radius;
}
}
class Cylinder extends Shape {
private int height;
public Cylinder(int radius) {
super(radius);
}
public Cylinder(int radius, int height) {
super(radius);
this.height = height;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
public double volume() {
return 3.14 * getHeight() * getRadius() * getRadius();
}
}
public class demo {
public static void main(String[] args) {
Cylinder c = new Cylinder(1, 1);
System.out.println(c.volume());
}
}
面向对象程序设计II(Java)实验报告(1)-复习
程序片段编程题
- 士兵与枪(抽象类与抽象方法)
【问题描述】编写程序实现士兵使用枪支射击。士兵使用不同的枪支从而发出不同的声音。可以使用的枪支包括M24、Kar98和M416。主方法中,给士兵不同的枪支让他使用。
士兵为Soldier类,包含useGun方法。
枪支为抽象类Gun,包含抽象方法fire方法
M24、Kar98和M416的类都继承自Gun类,并实现了fire方法。
如:M24能发出”ka”的声音,即打印出”ka”;
Kar98能发出”tu”的声音,而M416能发出”dong”的声音。
提示:一个源文件中只能有一个类使用public修饰
public class Soldier
{
// useGun方法,调用Gun引用的fire方法。
private void useGun(Gun gun1) {
gun1.fire();
}
public static void main(String[] args)
{
Soldier soldier = new Soldier();
// Gun引用类型指向Kar98的对象
// 士兵使用useGun使用该对象
Gun gun1 = new Kar98();
soldier.useGun(gun1);
// Gun引用类型指向M24的对象
// 士兵使用useGun使用该对象
Gun gun2 = new M24();
soldier.useGun(gun2);
// Gun引用类型指向M416的对象
// 士兵使用useGun使用该对象
Gun gun3 = new M416();
soldier.useGun(gun3);
}
}
// 定义抽象类Gun 其包含一个抽象方法fire
abstract class Gun{
abstract void fire();
}
// Kar98类继承Gun类,并重写fire方法
class Kar98 extends Gun {
@Override
void fire() {
System.out.println("tu");
}
}
//M24类继承Gun类,并重写fire方法
class M24 extends Gun{
@Override
void fire() {
System.out.println("ka");
}
}
//M416类继承Gun类,并重写fire方法
class M416 extends Gun {
@Override
void fire() {
System.out.println("dong");
}
}
实验作业2 集合
A B D C
【问题描述】遍历ArrayList。
常见的遍历ArrayList的几种方法:
第一种遍历方法:使用增强型foreach语句遍历List
第二种遍历方法:把ArrayList转换为数组,然后对数组进行遍历
第三种遍历方法:使用Iterator迭代器接口进行相关遍历
import java.util.*;
public class demo {
public static void main(String[] args) {
//创建了一个ArrayList对象:list
List<String> list = new ArrayList<>();
//向list中添加元素
list.add("Hello");
list.add("World");
list.add("HaHaHaHa");
//第一种遍历方法使用增强型foreach语句遍历List
for (String str : list) {
System.out.println(str);
}
//第二种遍历,把ArrayList转换为数组,然后对数组进行遍历
String[] strArray = new String[list.size()];
list.toArray(strArray);
for (int i = 0; i < strArray.length; i++) {
System.out.println(strArray[i]);
}
//第三种遍历 使用Iterator迭代器接口进行遍历
Iterator<String> it = list.iterator();
while (it.hasNext()
)//判断下一个元素之后有值
{
System.out.println(it.next());
}
}
}