题干:
1、实验要求
本实验要求:以计算图形的周长和面积为背景,体验接口与实现类的应用特性。
1-1. 业务说明:
1-1.1. 本实验以计算图形的周长和面积为背景。
1-1.2. 图形有多种,各自的周长和面积的计算方法不同。
1-1.3. 本实验以正方形图形计算为例来体验接口及实现类的应用特性。
+ 提示
1) 接口可以理解为一类需求方法集合,但又有不同的具体实现;
2)参照本案例实现,可以自行实现其它图形的计算,如长方形、圆形等。
1-2. 创建工程并配置环境:
1-2.1. 限制1. 创建实验工程,命名为:SE_JAVA_EXP_E034P;
1-2.2. 限制2. 创建包,命名为:cn.campsg.java.experiment;
1-2.3. 限制3. 创建包,命名为:cn.campsg.java.experiment.impl。
1-3. 创建接口和接口方法:
1-3.1. 限制1. 在cn.campsg.java.experiment 包中创建计算图形接口类:ShapeCalc。
1-3.2. 在ShapeCalc接口中创建计算图形周长和面积的函数:
访问权限
方法名称
返回值
方法参数
参数说明
方法说明
public
calcPerim
float
无参数
无
计算图形周长
public
calcArea
float
无参数
无
计算图形面积
1-4. 创建实现接口的类:
1-4.1. 限制1. 在cn.campsg.java.experiment.impl包中创建接口实现类:
1)类名:SquareCalImpl。
2)SquareCalImpl类需实现ShapeCalc接口。
1-4.2. 为SquareCalImpl类创建私有属性:
序号
属性权限
属性名称
属性类型
属性说明
1
private
length
float
正方形的边长
说明:实现属性的setter/getter方法
1-4.3. 为SquareCalImpl创建0参构造函数。
1-4.4. 在SquareCalImpl类中实现ShapeCalc接口方法calcPerim:
1)此方法需要已知正方形的边长,周长计算规则如下:
正方形的周长 = 正方形各边长之和 ;
2)返回周长计算结果。
1-4.5. 在SquareCalImpl类中实现ShapeCal接口方法calcArea:
1)此方法需要已知正方形的边长,面积计算规则如下:
正方形的面积 = 边长 * 边长 ;
2)返回面积计算结果。
1-5. 运行显示结果:
1-5.1. 限制1. 在cn.campsg.java.experiment包中创建主类:MainClass;
1-5.2. 为MainClass创建公共静态入口主方法:main;
1-5.3. 在main方法中,创建并实例化一个正方形的接口对象,设置正方形的边长。
1-5.4. 在main方法中,显示正方形的周长和面积计算结果。
2、实现思路
2-1. 创建工程并配置环境。
2-2. 创建接口和接口方法:
2-2.1. 在cn.campsg.java.experiment 包中创建找工作接口:ShapeCalc;
2-2.2. 为ShapeCalc类创建接口方法如下:
+ 提示
public float calcPerim();
public float calcArea();
2-3. 创建实现接口的类:
2-3.1. 在cn.campsg.java.experiment.impl包中创建接口实现类:
1)类名:SquareCalImpl;
2)SquareCalImpl类需实现ShapeCalc接口;
2-3.2. 为SquareCalImpl类定义私有属性:
序号
属性权限
属性名称
属性类型
属性说明
1
private
length
float
正方形的边长
说明:实现属性的setter/getter方法+ 提示
+ 提示
1) 由于本类是ShapeCalc的实现类,故需要实现接口的calcPerim,calcArea方法;
2-3.3. 为SquareCalImpl创建0参默认构造器。
2-3.4. 在类SquareCalImpl中实现接口方法如下:
+ 提示
public float calcPerim() {}
public float calcArea() {}
2-3.5. calcPerim正方形的周长计算规则如下:
1)定义浮点型变量(float peri)表示正方形的周长:
float peri = length * 4 ;
2)返回周长计算结果:
return peri ;
2-3.6. calcArea正方形的面积计算规则如下:
1)定义浮点型变量(float area)表示正方形的面积:
float area= length * length ;
2)返回面积计算结果:
return area;
+ 提示
1)接口可以理解为一类需求方法集合,但又有不同的具体实现;
2)参照本案例实现,可以自行实现其它图形的计算,如长方形、圆形等。
2-4. 运行显示结果:
2-4.1. 在包cn.campsg.java.experiment中创建业务主类:MainClass;
2-4.2. 在MainClass中定义主函数main;
2-4.3. 在main方法中,创建并实例化一个正方形的接口对象,设置正方形的边长。
2-4.4. 在main方法中,显示正方形的周长和面积计算结果。
+ 提示
public class MainClass{
public static void main(String[] args) {
//实例化正方形的接口对象
SquareCalImpl sc = new SquareCalImpl();
//设置正方形的边长
sc.setLength(5.0f);
//计算正方形的周长
System.out.println("正方形的周长为:"+sc.calcPerim());
//计算正方形的面积
System.out.println("正方形的面积为:"+sc.calcArea());
}
}
3、验证与测试
3-1. 在工程中定位主类MainClass。
3-2. 右键点击MainClass类,依次选择:Run As->Java Application。
3-3. 运行程序,查看输出结果是否符合预期。
package cn.campsg.java.experiment.impl;
import cn.campsg.java.experiment.ShapeCalc;
public class SquareCalImpl implements ShapeCalc {
private float length;
public SquareCalImpl() {
length = 0;
}
public float getLength() {
return length;
}
public void setLength(float length) {
this.length = length;
}
@Override
public float calcPerim() {
return length * 4;
}
@Override
public float calcArea() {
return length * length;
}
}
package cn.campsg.java.experiment;
import cn.campsg.java.experiment.impl.SquareCalImpl;
public class MainClass {
public static void main(String[] args) {
SquareCalImpl square = new SquareCalImpl();
square.setLength(5.0f);
System.out.println("正方形的周长为:" + square.calcPerim());
System.out.println("正方形的面积为:" + square.calcArea());
}
}
package cn.campsg.java.experiment;
public interface ShapeCalc {
float calcPerim();
float calcArea();
}