当前位置: 首页 > 知识库问答 >
问题:

如何在本例中返回点

柳胡媚
2023-03-14

我试图从一个圆返回一个点。扩展shape类的java类。目前我一直收到一个空指针异常。我需要使用继承的getPoints()重新运行中心点;方法,但内置方法返回一个数组,并且要从圆返回的值不是数组。如果不使用单独的返回方法,我将如何返回中心点。我的形体课如下

import java.awt.Point;

public abstract class Shape {
private String  name;
private Point[] points;
protected Shape(){};
protected Shape(String aName) {
    name = aName;
}

public final String getName() {
    // TODO Implement method
    return name;
}

protected final void setPoints(Point[] thePoints) {
    points = thePoints;
}

public final Point[] getPoints() {
    // TODO Implement method
    return points;
}

public abstract double getPerimeter();

public static double getDistance(Point one, Point two) {
    double x = one.getX();
    double y = one.getY();
    double x2 = two.getX();
    double y2 = two.getY();
    double x3 = x - x2;
    double y3 = y - y2;
    double ypow = Math.pow(y3, 2);
    double xpow = Math.pow(x3, 2);
    double added = xpow + ypow;
    double distance = Math.sqrt(added);
    return distance;
}
}

我的circle课程如下

import java.awt.Point;

public class Circle extends Shape{

private double radius;

public Circle(Point center, int aradius) {
super("Circle");

radius = aradius;
if(radius < 0){
    radius = 0;
}
else{
radius = aradius;
}

}

@Override
public double getPerimeter() {
double perim = 2 * Math.PI * radius;
return perim;
}
  public double getRadius(){
  return radius;
}

}

共有2个答案

瞿子濯
2023-03-14

您得到NullPointerException的原因是,您从未设置过形状的设定点。

我不确定point应该包含什么,但对我来说唯一有意义的是形状中的所有点。使用圆形等形状确定哪个IMO有点棘手,确定中心点似乎更棘手(尽管我猜对于圆形来说,它几乎是数组的中心点,具体取决于顺序?)。

(再想一想,points也可以包含子类决定它应该包含的任何内容,例如1个圆心表示圆,4个点表示矩形..)

无论如何,在使用获取点之前,您必须用一些数据填充形状的数组(通过调用设置点)。

有宏峻
2023-03-14

我能想到的最简单的解决方案就是简单地使用Shape类中的setPoint方法...

public Circle(Point center, int aradius) {
    super("Circle");
    //...
    setPoints(new Point[]{center});
}
 类似资料:
  • 我现在正在学习Scala。我喜欢做的一件事是提前返回。我相信这对每个人来说都更容易理解,因为我们只是删除了之前的无效状态。现在,由于Scala是一种函数式语言,并且我读到了切割计算是糟糕的函数式风格,我想知道是否有一些技巧或函数式编程等同于早期返回。 这是我要写的代码,为了完全清楚,这只是一个愚蠢的例子,我不是在寻找我的特殊情况的特别黑客,但更多的是关于如何处理这些问题的一般建议。 现在,我想做的

  • 问题内容: 有什么方法可以追溯到Eclipse吗?基本上,当我按照执行流程(Ctrl +单击等)在一个大项目中跳来跳去时,有没有办法追溯步骤?如果我的代码调用一个方法,然后转到方法定义,是否有组合键可以将我带回到调用代码? 问题答案: 像在网络浏览器中一样按+ 和+ 。

  • 问题内容: 假设我有一个Oracle数据库和一个像这样的接口: 如果我致电并且所有列均具有值,则映射包含三个条目。但是,如果为,则地图只有两个条目。在许多情况下,这不是问题,但是在我们代码的通用部分中,我实际上想在该地图上调用,并希望包含三个条目的列表。任何条目都可以是(或一个空字符串,与Oracle中的相同)。 实际上,我真的很高兴这样的事情,其中​​每个外部列表都由具有三个条目的列表组成: 但

  • 问题内容: 我怎样才能返回一个 函数 副作用的词汇封闭 1 斯卡拉? 例如,我在Go中查看此代码示例: 打印1 2 3 5 8 而且我不知道如何在Scala中编写相同的内容。 1.在Apocalisp评论后更正 问题答案: 稍短一些,您不需要退货。

  • 问题内容: 我有一个档案 用户来 我希望用户的浏览器开始下载文件。我怎么做?readfile是否在服务器上打开文件,这似乎是不必要的事情。有没有一种方法可以在不打开服务器的情况下返回文件? 问题答案: 我想你想要这个:

  • 问题内容: 在Laravel中,有一个函数,可以使用户返回上一页。在一个函数中是否可以多次返回用户两次或多次?我试过了 但它似乎不起作用。 问题答案: 否,但是您可以使用会话系统来保存2-3-4页的URL。使用facade或helper来缩短语法: 并使用它: