电子科大Java半期测试解答(接口部分)

接口这类编程题很容易考,因为可以考察的点很多,接口下可以放多个方法,或可以声明多个接口,不同的类可以使用同一个接口(或者说一个接口供多个类使用),或一个类使用多个接口,在定义的类中对接口内方法进行重写,可以得到具体的行为方法…所以说这种编程题目容易考察到学生对代码的组织能力。第一次经历Java手写代码的考试,再加上自己对接口和构造函数不熟悉,所以当时把框架写出来了,但是具体代码并没有很完整,考后对这两题的总结如下。

1、求长方形和圆形的面积及周长(单接口)
定义一个接口,它有两个方法,一个是计算图形的面积,另一个是计算图形周长:

double get_area();
double get_perimeter();

请实现长方形和圆的图形类,它们都实现这两个接口;再分别构造长为 10,宽为 5 的长方形,以及半径为 5 的圆,然后通过接口分别打印出这两个图形的面积和周长。

package model;
//定义一个接口,包含了求面积和求周长两个方法
interface Perarea {
	double get_area();

	double get_perimeter();
}
//长方形这个类声明使用了该接口
class Rectangle implements Perarea {
	private int length;
	private int width;
	//构造函数接受参数
	Rectangle(int length, int width) {
		this.length = length;
		this.width = width;
	}

	public double get_area() {
		return length * width;
	}

	public double get_perimeter() {
		return 2 * (length + width);
	}
}
//圆形这个类声明使用了该接口
class Circle implements Perarea {
	private int r;

	Circle(int r) {
		this.r = r;
	}

	public double get_area() {
		return 3.14 * r * r;
	}

	public double get_perimeter() {
		return 2 * 3.14 * r;
	}
}

public class AreaTest {
	public static void main(String[] args) {
		Perarea rectagle = new Rectangle(10, 5);
		Perarea circle = new Circle(5);
		System.out.println("rectagle area = " + rectagle.get_area() + " perimeter = " + rectagle.get_perimeter());
		System.out.println("circle area = " + circle.get_area() + " perimeter = " + circle.get_perimeter());
	}
}

rectagle area = 50.0 perimeter = 30.0
circle area = 78.5 perimeter = 31.400000000000002

2、求数组的最大最小值(双接口)
有如下 2 个接口:

interface Ia {
	int max(int[] a);
}
interface Ib {
	int min(int[] a);
}

其中 max 方法为返回数组中元素的最大值,min 方法为返回数组中元素的最小值。
要求,设计一个非抽象类 Test2,同时实现该两个接口,并在 Test2 类的 main 方法中用如下考试的分数数据{ 88, 89, 82, 90, 98 }初始化一个数组,并分别使用 max 和 min 方法求出最高分和最低分,并分别打印输出。

package model;

interface Ia {
	int max(int[] a);
}

interface Ib {
	int min(int[] a);
}

//该类使用了两种接口
public class MaxMin implements Ia, Ib {
	//重写max方法
	public int max(int[] a) {
		int t = a[0], i;
		for (i = 1; i < a.length; i++) {
			if (t < a[i])
				t = a[i];
		}
		return t;
	}
	//重写min方法
	public int min(int[] a) {
		int t = a[0], i;
		for (i = 1; i < a.length; i++) {
			if (t > a[i])
				t = a[i];
		}
		return t;
	}

	public static void main(String[] args) {
		MaxMin maxMin = new MaxMin();
		int[] arr = new int[] { 88, 89, 82, 90, 98 };
		// 同样可以写 int[] arr = { 88, 89, 82, 90, 98 };
		int min = maxMin.max(arr);
		int max = maxMin.min(arr);
		System.out.println("max = " + max + " min = " + min);
	}
}

如果将max和min方法放在同一个接口Ic中呢

interface Ic {
	int max(int[] a);
	int min(int[] b); 
}
public class MaxMin implements Ic {
	...
}
max = 82 min = 98

期末考试在即,继续好好复习软件工程和Java ┗|`O′|┛

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
电子科技大学出版社出版的《Java面向对象程序设计》一书的答案由程细柱编写。程细柱是电子科技大学计算机科学与技术学院的教授,他在Java编程和面向对象程序设计方面有着丰富的教学和研究经验。这本书是他多年教学经验的结晶,深入浅出地介绍了Java语言和面向对象程序设计的基本概念和原理。 这本书的答案部分涵盖了教材中提到的所有习题和案例的解答。程细柱根据他对学生常见问题的了解,为每个问题提供了清晰的解释和详细的代码实现。他用简练的语言和易于理解的示例,帮助读者更好地理解Java编程和面向对象的思想,并能够熟练地运用到实际的项目开发中。 这本书的答案部分分为多个章节,每个章节对应教材中的相应章节。每个章节的答案都以问题-答案的形式呈现,便于读者通过索引快速找到自己感兴趣的问题和对应的解答。而且,为了进一步帮助读者理解,程细柱还提供了一些额外的讲解和扩展知识。 总体而言,电子科技大学出版社出版的《Java面向对象程序设计》一书的答案由程细柱编写,是这门课程的权威教材。这本书的答案部分全面而详细,适合初学者和有一定基础的读者阅读和学习。无论是学生、教师还是从业人员,都可以通过这本书更好地掌握Java编程和面向对象程序设计的知识和技能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.zwX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值