Java接口求圆和三角形的面积_Java思想之什么是面向接口?interface实现(计算三角形、圆形的面积)...

本文介绍了Java中的接口interface,作为行为的抽象,用于计算三角形和圆形的面积。文章详细阐述了接口的定义、特点,并通过实例展示了如何创建和实现接口。通过Pillar、Lader、Circle类的实现,演示了如何使用接口来改变柱体底部形状,从而计算不同形状柱体的体积。
摘要由CSDN通过智能技术生成

本次讲解面向接口interface,其内功能为计算三角形和圆形的面积。

接口的本身反映了系统设计人员对系统的抽象理解。

接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);

第二类是对一个体某一方面的抽象,即形成一个抽象面(interface);

一个体有可能有多个抽象面。

抽象体与抽象面是有区别的。

接口,英文称作interface,泛指供别人调用的方法或者函数,它是对行为的抽象。

在Java中,定义一个接口的形式如下:

public interface InterfaceName {

int a;

public void f();

}

1. 接口中可以含有 变量和方法

2.接口中的变量会被隐式地指定为public static final变量(且只能是public static final变量),方法会被隐式地指定为public abstract方法且只能是public abstract方法(且只能是public abstract 方法),并且接口中所有的方法不能有具体的实现,也就是说,接口中的方法必须都是抽象方法。

2. 实现接口

让某一个类实现接口需要使用implements关键字,如:

class ClassName implements Interface1,Interface2,[....]{

}

================================================================================================================================

在以下完整测试中

我们会使用到四个类

1.Pillar

2. Geometry(接口)

3.Lader

4.Circle

5.Example5_14测试类

================================================================================================================================

我们来看一看代码实现

//柱体Pillar类

package com.ash.www;

public class Pillar{

Geometry bottom;//将bottom接口变量作为成员

double height;

Pillar(Geometry bottom, double height){

this.bottom = bottom;

this.height = height;

}

void changeBottom(Geometry bottom){

this.bottom = bottom;

}

public double getVolume() {

return bottom.getArea() * height;

}

}

//几何Geometry类(接口类)

package com.ash.www;

public interface Geometry {//接口

public double getArea();//得到面积

}

//梯形Lader类

package com.ash.www;

public class Lader implements Geometry {

double a, b, h;

Lader(double a, double b, double h){

this.a = a;

this.b = b;

this.h = h;

}

@Override

public double getArea() {

// TODO Auto-generated method stub

return (1/2.0) * (a+b) * h;

}

}

//圆形Circle类

package com.ash.www;

public class Circle implements Geometry {

double r;

Circle(double r){

this.r = r;

}

@Override

public double getArea() {

// TODO Auto-generated method stub

return (3.14 * r * r);

}

}

//Example5_14测试类

package com.ash.www;

public class Example5_14 {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

Pillar pillar;

Geometry tuxing;

tuxing = new Lader(12, 22, 100);

System.out.println("Lader area: "+ tuxing.getArea());

pillar = new Pillar(tuxing, 58);

System.out.println("Ladered pillar volume: "+ pillar.getVolume());

tuxing = new Circle(10);

System.out.println("When the cicle radius is 10, the circle area: "+ tuxing.getArea());

pillar.changeBottom(tuxing);

System.out.println("Circled pillar volume: "+ pillar.getVolume());

}

}

看完这篇文章,你是否对面向接口interface又有了更深的了解呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值