西南大学2014年《面向对象程序设计》第六次作业及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请按下面的要求编写程序。
(1)定义一个接口Shapes,它至少包含一个可以计算面积的成员方法。
(2)编写实现该Shapes接口的两个类:正方形类和圆形类。
(3)编写一个具有泛型特点的类Map,要求该类可以在控制台窗口输出某种图形的面积,而且这个类的类型变量所对应的实际类型就是(2)编写的正方形类和圆形类。(4)利用具有泛型特点的类Map在控制台窗口分别输出给定边长的正方形的面积和给定半径的圆的面积。
参考:
// 定义接口
inte**ce Shapes {
abstract double getArea();
}
// 定义Square类
class Square implements Shapes {
public double edge;
public Square(double edge) {
this.edge = edge;
}
public double getArea() {
return (edge * edge);
}
}
// 定义Circle类
class Circle implements Shapes {
public double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getArea() {
return (radius * radius * Math.PI);
}
}
class Map { // 使用泛型T,T应当是Shapes的子类
T t;
public Map(T t) {
this.t = t;
}
public double getArea() {
return t.getArea();
}
}
// 测试程序
class Test {
public static void main(String[] args) {
Map m1 = new Map(new Square(15.0));
System.out.println("正方形的面积是: " + m1.getArea());
Map m2 = new Map(new Circle(15.0));
System.out.println("圆形的面积是: " + m2.getArea());
}
}
问题:
编写一个简单的乘法器,界面如下图所示,在第一个文本框中输入第一个乘数;在第二个文本框中输入第二个乘数;当单击“=”按钮时,在第三个文本框中输出其乘积。参考:
// import语句
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Multiply extends JFrame implements ActionListener{
// 组件声明及创建
private JButton operator = new JButton(" * ");
private JTextField input1 = new JTextField(5);
private JTextField input2 = new JTextField(5);
private JButton equal = new JButton(" = ");
private JTextField result = new JTextField(5);
// 添加组件
public Multiply () {
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(input1);
c.add(operator);
c.add(input2);
c.add(equal);
c.add(result);
equal.addActionListener(this);
}
// 处理按钮动作事件
public void actionPerformed(ActionEvent e) {
double operand1 = Double.valueOf(input1.getText()).doubleV alue();
double operand2 = Double.valueOf(input2.getText()).doubleV alue();
result.setText(String.valueOf(operand1*operand2));
}
// 设置框架属性
public static void main(String args[ ]) {
Multiply f = new Multiply();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(320, 80);
f.setVisible(true);
}
}
题目:
请设计一个软件包。要求该软件包至少拥有正方形类、圆类。要求每个类都具有构造方法、计算该图形的周长的成员方法和计算该图形的面积的成员方法。然后编写一个测试程序,分别创建这些类的实例对象,并输出这些实例对象的周长和面积。在创建这些实例对象时,构造方法的调用参数值分别是:
正方形:左上定点的坐标为(5,10),边长为15。
圆形:圆心的坐标为(0,0),圆心为15。
参考:
inte**ce Shapes {
abstract double getArea();
abstract double getPerimeter();
}
// 定义接口
class Square implements Shapes { // 定义Square类
public int x, y;
public int width, height;
public double getArea() {
return (width * height);
}
public double getPerimeter() {
return (2 * width + 2 * height);
}
public Square(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
}
class Circle implements Shapes { // 定义Circle类
public int x, y;