保存,获取和设置多维数据集的长度(扩展类)

时间:2017-01-05 15:41:34

标签: java oop

我已经编写了一个类 Geom ,它代表三维几何形式,并使用属性double dx, dy, dz(表格的坐标)和String colour(颜色)形式)。现在我应该更具体,我想编写一个扩展 Geom 的类 Cube ,并且还可以使用属性边长 ,以计算表格的体积或面积等内容。

为了做到这一点,我需要编写一个方法private double length保存边长。除此之外,我需要实现 get - set-methods

实际上这应该很容易,但我不知道我在这里要做什么。我开始是这样的:

public class Cube extends Geom {

  int edge;

  public Cube (double dx, double dy, double dz, String colour, double edge) {

  super(dx, dy, dz, colour);
  edge = ///I don't know what do to here

  }

  private double length(double edge) {
  this.edge = edge;
  return this.edge;

  }

  public double getEdge() {
  double a = length();
  return a;
  }

  public void setEdge() {
  this.edge = edge
  }

  ...

但这似乎没有多大意义。我收到两个错误,一个告诉我this.edge = edge是从double到int的有损转换,并且告诉我double a = width();是不可能的,因为方法width()无法应用于给定的类型。我没有完全看到"拯救"首先是长度,然后得到它并将其设置到最后。

1 个答案:

答案 0 :(得分:1)

public class Cube extends Geom {

首先应该封装这样的变量并为它们创建getter和setter。

private int edge;

public Cube (double dx, double dy, double dz, String colour, int edge) {

super(dx, dy, dz, colour);

如果您希望能够使用给定边构造Geom对象 你需要类似的东西,并将参数类型更改为int

this.edge=edge;

这会将给定参数设置为您的变量'这个' keyword意味着您要调用此类边缘变量,因为参数名称相同。

我不知道为什么你在这里创建了它应该返回的方法长度? 据我所知它返回边缘,然后是getter工作。

  }

  private double length(double edge) {
  this.edge = edge;
  return this.edge;

  }

你希望在你的edge变量为int时返回double,可能需要这个。

  public int getEdge() {
  return edge; 

  return this.edge;

在这一点上最重要的是

  }

并且setter应该采用与变量匹配的值 再一次你不一定需要说this.edge,因为编译器会知道该怎么做,因为这是唯一的边缘变量。

  public void setEdge(int value) {
  this.edge = value;
  }

然后你可以在长度方法中进行计算和填充,并在需要时将其解析为双倍,或者如果首先需要加倍,只需将边缘类型更改为double