一、前言
? ? ? ? 本文内容:武汉理工大学java程序语言设计第一次课内实验的内容,分别采用了继承和接口的知识实现。
? ? ? ? 开发工具:Intellij IDEA 2021.2.3?
二、实验要求
1.实验描述
? ? ? ? 编写应用程序计算梯形和圆形的面积(分别使用继承和接口知识编写)
2.基本要求
????????通过在程序中定义2个类来分别描述梯形和圆形的属性和求面积的方法,掌握类的定义方法;通过在程序中定义主类,创建梯形类和圆形类的对象计算它们的面积,掌握对象的定义和使用方法。
3.实验目的
????????通过编写Java应用程序,熟练掌握应用程序的典型结构,熟悉运算符、表达式和基本数据类型的使用;理解Java语言程序设计的基本概念和基本原理,如抽象、对象、类、实例、属性、方法以及封装性、继承性和多态性;掌握在Java语言集成开发环境Eclipse中,上述基本概念的具体实现方法。
三、具体实现
1.通过类的继承实现
1.1引入库
在这里,我一共引入两个库,java.util.Scanner用来获取键盘输入内容,java.text.DecimalFormat用来处理最后的结果,例如保存三位小数等等。
package 继承;
import java.text.DecimalFormat;
import java.util.Scanner;
1.2类的设计
//父类Shape中定义area()方法,计算面积
class Shape{
public double area(){
return 0;
}
}
class Circular extends Shape{
private final double PI = 3.14;
private final double radius;
public Circular(double radius){
this.radius = radius;
}
//实现父类中area()方法
public double area(){
double circularArea;
circularArea = PI * radius * radius;
return circularArea;
}
//子类Circular的方法
public double girth(){
double circularGirth;
circularGirth = 2 * PI * radius;
return circularGirth;
}
}
?
1.3 main方法
????????
Scanner scan = new Scanner(System.in);
//获得键盘上的输入
double radius = scan.nextDouble();
double high = scan.nextDouble();
double upperBase = scan.nextDouble();
double lowerBase = scan.nextDouble();
Circular circular = new Circular(radius);
Trapezoid trapezoid = new Trapezoid(high,upperBase,lowerBase);
System.out.println("圆的面积为:" + new
DecimalFormat("#.000").format(circular.area()));
//定义一个DecimalFormat对象,调用format方法是结果保留三位小数
System.out.println("梯形的面积为:" + trapezoid.area());
System.out.println("==================================");
Shape shape =new Circular(radius);
//向上类型转换
System.out.println("圆形的面积为" + new
DecimalFormat("#.000").format(shape.area()));
Circular circular1 = (Circular) shape;
//向下类型转换
System.out.println("圆形的周长为:" + new
DecimalFormat("#.000").format(circular1.girth()));
System.out.println("==================================");
Shape shape1 = new Trapezoid(high,upperBase,lowerBase);
System.out.println("梯形的面积:" + new
DecimalFormat("#.000").format(shape1.area()));
scan.close();
2.通过类实现接口实现
2.1 引入库
package 接口;
import java.util.Scanner;
import java.text.DecimalFormat;
2.2 类实现接口
/**
* 面积Area接口
*/
interface Area{
double PI = 3.14;
void area();
}
/**
* 周长Girth接口
*/
interface Girth{
void girth();
}
/**
* 接口的多继承,需实现接口的所有方法
*/
class Circular implements Area,Girth{
private final double radius;
public Circular(double radius){
this.radius = radius;
}
public void area(){
double circularArea;
circularArea = PI * radius * radius;
System.out.println("圆的面积为:" + new DecimalFormat("#.000").format(circularArea));
}
public void girth(){
double circularGirth;
circularGirth = 2 * PI * radius;
System.out.println("圆的周长为:"+ new DecimalFormat("#.000").format(circularGirth));
}
}
2.3 main方法
Scanner scan = new Scanner(System.in);
double radius = scan.nextDouble();
double high = scan.nextDouble();
double upperBase = scan.nextDouble();
double lowerBase = scan.nextDouble();
Circular circular = new Circular(radius);//创建圆形对象
circular.area();
circular.girth();
Trapezoid trapezoid = new Trapezoid(high, upperBase, lowerBase);//创建梯形对象
trapezoid.area();
scan.close();
四、总结
? ? ? ? 作者是第一次写博客,写的不好还请多多包涵。
? ? ? ? 有需要源码的宝子可以私信我哟。
|