知识点
- 接口,接口的实现
- 方法的重写
- 多态的运用
题目
利用接口、类、多态等知识,计算各种图形的周长和面积(圆,长方形,正方形)
解题思路:
创建一个接口Calculate
,包含有三个方法,
- 求解周长的方法
perimeter()
, - 求解面积的方法
area()
, - 显示周长和面积的方法
show()
, - 每一个图形定义一个类,并且实现接口的方法,
- 一个测试类
CalculateDemo
详细设计
计算接口:Calculate
package com.newedu.javabase.homework.exrecises.topic7;
/**
* 计算接口:
* 计算周长,
* 面积,
* 显示周长和面积
* @author giantPanda
*
*/
public interface Calculate {
/**
* 计算周长
* @return
*/
public abstract double perimeter();
/**
* 计算面积
* @return
*/
public abstract double area();
/**
* 显示周长和面积
*/
public abstract void show();
}
圆形类-Circle
package com.newedu.javabase.homework.exrecises.topic7;
/**
* 圆形类--实现 计算接口
* @author giantPanda
*
*/
public class Circle implements Calculate {
private double r;
public Circle(double r) {
this.r = r;
}
@Override
public double perimeter() {
//圆形周长
return 2*Math.PI*this.r;
}
@Override
public double area() {
//圆形面积
return Math.PI*Math.pow(r, 2);
}
@Override
public void show() {
//显示周长 和面积
System.out.println("圆形:");
System.out.println(" 周长="+perimeter());
System.out.println(" 面积="+area());
}
}
长方形类-Rectangle
package com.newedu.javabase.homework.exrecises.topic7;
/**
* 长方形类---实现 计算接口
* @author giantPanda
*
*/
public class Rectangle implements Calculate {
private double width;
private double height;
public Rectangle() {
}
public Rectangle(double width,double height) {
this.width = width;
this.height = height;
}
@Override
public double perimeter() {
//计算长方形周长
return 2*(this.height+this.width);
}
@Override
public double area() {
//计算长方形面积
return this.height*this.width;
}
@Override
public void show() {
//显示长方形周长和面积
System.out.println("长方形:");
System.out.println(" 周长="+perimeter());
System.out.println(" 面积="+area());
}
}
正方形类-Square
package com.newedu.javabase.homework.exrecises.topic7;
/**
* 正方形类 -- 实现 计算接口
* @author giantPanda
*
*/
public class Square implements Calculate{
private double side;
public Square(double side) {
this.side = side;
}
@Override
public double perimeter() {
//计算正方形边长
return this.side*4;
}
@Override
public double area() {
//计算正方形面积
return Math.pow(this.side, 2);
}
@Override
public void show() {
//显示周长 和面积
System.out.println("正方形:");
System.out.println(" 周长="+perimeter());
System.out.println(" 面积="+area());
}
}
Demo
package com.newedu.javabase.homework.exrecises.topic7;
public class CalculateDemo {
public static void main(String[] args) {
//利用多态,参数不同返回不同结果。
method1(new Circle(3));
method1(new Rectangle(5,6));
method1(new Square(4));
}
//接口为形式参数
public static void method1(Calculate c) {
c.show();
}
}
运行
/*
圆形:
周长=18.84955592153876
面积=28.274333882308138
长方形:
周长=22.0
面积=30.0
正方形:
周长=16.0
面积=16.0
*/
ヾ(◍°∇°◍)ノ゙