如何添加return语句?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何添加return语句?相关的知识,希望对你有一定的参考价值。

Java的

我想在我的其他课程中访问'dist'。但是我无法这样做,因为变量在方法内。我无法将方法更改为'public double',因此我无法将其置于get-method中。提示?

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    for (Circle circle : circles) {
        circle.draw(g);
        if (selectedCircle != null && selectedCircle == circle) {
            selectedCircle.drawSelected(g);
        }
    }

    for (int i = 0; i < circles.size(); i++) {
        Circle c1 = circles.get(i);
        for (int j = i + 1; j < circles.size(); j++) {
            Circle c2 = circles.get(j);

            double dist = c1.getPoint().distance(c2.getPoint()) + 1;
            double dx = (c2.x - c1.x) / dist / dist;
            double dy = (c2.y - c1.y) / dist / dist;
            c1.x += dx;
            c1.y += dy;
            c2.x -= dx;
            c2.y -= dy;

        }
    }

}
答案

如果paintComponent方法以某种方式发生了变化,它将更新您的圈子。它本身不是进行这些改变的地方。因此,第二个循环中的代码应该移动到其他地方,例如,移动到Circle的构造函数和/或moveCircle方法中。在进行这些更改后,系统将调用paintComponent。另外,关于第一个循环,还不清楚selectedCircle会是什么,可能是一个实例变量。如果是这样,不要在循环中绘制它,而只是绘制一次。

另一答案

你可以在你的方法之外移动dist声明并进入类体,然后为你的其他类提供一个getter来利用它。

private double dist;

public double getDist() {
   return dist;
}

public void paintComponent(Graphics g) {
    super.paintComponent(g);

    for (Circle circle : circles) {
        circle.draw(g);
        if (selectedCircle != null && selectedCircle == circle) {
            selectedCircle.drawSelected(g);
        }
    }

    for (int i = 0; i < circles.size(); i++) {
        Circle c1 = circles.get(i);
        for (int j = i + 1; j < circles.size(); j++) {
            Circle c2 = circles.get(j);

            dist = c1.getPoint().distance(c2.getPoint()) + 1;
            double dx = (c2.x - c1.x) / dist / dist;
            double dy = (c2.y - c1.y) / dist / dist;
            c1.x += dx;
            c1.y += dy;
            c2.x -= dx;
            c2.y -= dy;

        }
    }

}

以上是关于如何添加return语句?的主要内容,如果未能解决你的问题,请参考以下文章

在 JSP 中的 <% %> 代码片段中添加链接

如何管理在每个 git 版本中添加私有代码片段?

代码片段 - Golang 实现集合操作

如何在Sublime Text中添加代码片段

如何正确地将多个片段添加到片段过渡?

如何在 Reactjs 中添加丰富的代码片段?