用JDEA编写下列题目:定义一个泛型抽象类Simple<T,E,M>;该类有2个私有成员:T x,E y;三个抽象方法成员: M add(T a,E b); M multiple(T a,E b); M zero();分别完成T与E类型数据的加法、乘法、0赋值。
时间: 2024-01-15 13:03:40 浏览: 76
以下是使用JDEA编写的Simple类的代码:
```java
abstract class Simple<T, E, M> {
private T x;
private E y;
public Simple(T x, E y) {
this.x = x;
this.y = y;
}
public abstract M add(T a, E b);
public abstract M multiple(T a, E b);
public abstract M zero();
}
```
在这个抽象类中,定义了泛型类型参数T和E,它们分别代表了类型为T和类型为E的数据。同时,还定义了泛型类型参数M,它代表了这些方法的返回值类型。
在这个类中,有两个私有成员变量x和y,它们分别代表了类型为T和类型为E的对象。构造函数用于初始化这两个成员变量。三个抽象方法用于完成加法、乘法和0赋值操作,它们接受类型为T和类型为E的参数,并且返回类型为M的结果。由于这些方法是抽象的,所以必须在子类中实现它们。
相关问题
用JDEA编写下列题目:定义一个可以比较大小几何图形抽象类:GeoGraphic,该类有一个抽象方法:double getArea();同时要求实现Comapable<GeoGraphic>接口,以getArea()的值为判断大小的依据。
下面是使用 Java 编写的 JDEA 代码:
```
/**
* 定义可以比较大小几何图形抽象类:GeoGraphic
*/
public abstract class GeoGraphic implements Comparable<GeoGraphic> {
/**
* 获取几何图形的面积
*
* @return 几何图形的面积
*/
public abstract double getArea();
/**
* 比较两个几何图形的大小
*
* @param other 另一个几何图形
* @return 如果当前几何图形的面积大于另一个几何图形的面积,则返回正数;如果当前几何图形的面积小于另一个几何图形的面积,则返回负数;如果两个几何图形的面积相等,则返回0。
*/
@Override
public int compareTo(GeoGraphic other) {
double diff = this.getArea() - other.getArea();
if (diff > 0) {
return 1;
} else if (diff < 0) {
return -1;
} else {
return 0;
}
}
}
```
在这个代码中,我们定义了一个名为 `GeoGraphic` 的抽象类。这个抽象类有一个抽象方法 `getArea()`,用于获取几何图形的面积。我们还实现了 `Comparable<GeoGraphic>` 接口,以便我们可以使用 `compareTo()` 方法来比较两个几何图形的大小。在 `compareTo()` 方法中,我们使用 `getArea()` 方法来获取当前几何图形和另一个几何图形的面积,并将它们进行比较。如果当前几何图形的面积大于另一个几何图形的面积,则返回正数;如果当前几何图形的面积小于另一个几何图形的面积,则返回负数;如果两个几何图形的面积相等,则返回0。
用JDEA编写下列题目:假设已知接口Shape定义如下:public interface Shape{ public static double pi=3.14159; public double getArea(double r);} 请写出一个求圆面积的Lambda表达式,圆的面积=pi*r*r;
下面是使用 JDEA 编写的求圆面积的 Lambda 表达式:
```
Shape circle = (r) -> Shape.pi * r * r;
```
其中,`Shape` 是接口名称,`circle` 是 Lambda 表达式的名字,`(r)` 是参数列表,表示接受一个 double 类型的参数 `r`,`->` 是 Lambda 表达式的标志,后面的 `Shape.pi * r * r` 是方法体,即计算圆的面积。
阅读全文