Java接口计算图形面积

一、前言

  • 在现实生活中,常常需要一些规范和标准,如汽车轮胎坏了,只需要更换一个同样规格的轮胎,计算机的硬盘要升级,只需要买一个有同样接口和尺寸的硬盘进行更换,而一个支持USB接口的设置如移动硬盘、MP3、手机等都可以插入计算机的USB接口进行数据传输。这些都是由于有一个统一的规范和标准,因此轮胎之间可以互相替换,移动硬盘和手机通过USB可以互相连接。
  • 在软件开发领域,也可以定义一个接口规定一系列规范和标准,继承同一接口的程序也就遵循同一种规范,这样程序可以互相替换,便于程序的扩展。

二、资源背景

  • 基于jdk8
  • 使用软件:eclipse

三、接口和抽象类的区别

  • 接口可以实现多继承,类只允许单继承。
  • 接口:只包含常量及抽象方法(JDK7之前);成员默认为public;默认变量为final;  抽象方法可以不加abstract,默认abstract;
  • 类:可以包含有一般成员,也可以包含有抽象方法;成员可以是private,protected,public;可以包含非final的变量;抽象方法一定要加abstract。

四、接口实现实例

  • 设计一个IShape接口,和他的三个实现类:Square,Rectangle,Circle;
  • IShape中有两个方法:area方法用于返回面积,perimeter方法用于返回周长。
  • 在测试类创建计算边长为2的正方形对象,创建长为5,宽为2.5的长方形对象,创建半径为3的圆形对象,分别计算他们的面积和周长。

五、接口定义格式

[访问修饰符] interface 接口名[extends 接口1,接口2,...]{

                    常量 

                   抽象方法

 }


  六、接口的实现

格式:[访问权限] class 类名 implements 接口名1,接口名2,...{

                             类体

          }

  1. 一个类可以实现多个接口,在implements后列出需要实现的接口名;
  2. 如果某个类不是abstract类型,那么类要实现该接口的所有抽象方法;
  3. 在类中实现接口的抽象方法中,必须与接口中定义的方法头完全一致即方法名、返回值类型及形参列表要完一致。如果方法名相同,但参数不同,则不是实现接口的抽象方法,而是定义新的方法。

七、抽象类和接口的选择

  • 抽象类主要用于关系密切的对象,而接口最适合为不相关的类提供通用功能。
  • 抽象类偏重于IS-A式的关系,而接口着重于CAN-DO关系类型。
  • 抽象类多定义对象的属性,而接口多定义对象的行为。
  • 例如:人会奔跑,狗会奔跑,他们都继承了同一个接口“奔跑”;铁门和木门都是门(抽象类)

八、案例

设计一个IShape接口和它的三个实现类,要求如下:

  • Ishape接口中有两个方法,area方法用于返回面积,perimeter方法返回周长
  • 正方形类Square、长方形类Rectangle和圆类Circle实现了接口中的抽象方法,计算了正方形、长方形及圆形的面积、周长。

在测试类中创建计算边长为2的正方形对象,创建长为5、宽为2.5的长方形对象,创建半径为3的圆形对象,分别计算它们的面积、周长。


1.创建接口IShape和两个抽象方法

public interface IShape {
	public abstract double area();
	public abstract double perimeter();

}

2.创建Square类实现接口IShape并重写两个方法计算正方形的面积和周长

public class Square implements IShape{
	private double length;
	
	public Square(double length) {
		this.length=length;
	}

	@Override
	public double area() {
		return length*length;
	}

	@Override
	public double perimeter() {
		return length*4;
	}

}

3.创建Rectangle类实现接口IShape并重写方法计算长方形的面积和周长

public class Rectangle implements IShape{
	private double length;
	private double width;
	
	public Rectangle(double length,double width) {
		this.length=length;
		this.width=width;
	}

	@Override
	public double area() {
		return length*width;
	}

	@Override
	public double perimeter() {
		return (length+width)*2;
	}

}

4.创建Circle类实现接口IShape并重写两个方法计算圆的面积和周长

public class Circle implements IShape{
	private double radius;
	
	public Circle(double radius) {
		this.radius=radius;
	}

	@Override
	public double area() {
		return 3.14*radius*radius;
	}

	@Override
	public double perimeter() {
		return 2*3.14*radius;
	}

}

5.创建一个测试类计算各个形状的面积和周长

public class TestIShape {

	public static void main(String[] args) {
		Square s1=new Square(2);
		System.out.println("正方形面积:"+s1.area());
		System.out.println("正方形周长:"+s1.perimeter());
		
		Rectangle r1=new Rectangle(5, 2.5);
		System.out.println("长方形面积:"+r1.area());
		System.out.println("长方形周长:"+r1.perimeter());
		
		Circle c1=new Circle(3);
		System.out.println("圆面积:"+c1.area());
		System.out.println("圆周长:"+c1.perimeter());

	}

}

6.结果


九、总结

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为或者是功能。在接口里面不能创建对象,用过implement对接口进行实例化。


感谢各位读者的阅读,文章作者技术和水平有限,如果文中出现错误,希望大家能指正!

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值