gpt4 book ai didi

java - 从方法获取值 (java)

转载 作者:行者123 更新时间:2023-12-01 14:50:26 26 4
gpt4 key购买 nike

到目前为止,我已经得到了这段代码,但我正在尝试学习如何完成此方法,以便它能够编译所用面的总数并在最后一个打印行中打印该值。问题方法是 getTotalSides,我目前将其设置为返回 0,但我希望它返回总边数,意思是: mp1.getSides() + mp2.getSides() + mp3.getSides() + mp4.getSides( )。

public class TestParts {

public static void main(String[] args) {

MyPolygon mp1 = new MyPolygon();
MyPolygon mp2 = new MyPolygon(4);
MyPolygon mp3 = new MyPolygon(5);
MyPolygon mp4 = new MyPolygon(6);
System.out.println("Polygon 1 has " + mp1.getSides()
+ " sides, angles total " + mp1.getSumOfAngles());
System.out.println("Polygon 2 has " + mp2.getSides()
+ " sides, angles total " + mp2.getSumOfAngles());
System.out.println("Polygon 3 has " + mp3.getSides()
+ " sides, angles total " + mp3.getSumOfAngles());
System.out.println("Polygon 4 has " + mp4.getSides()
+ " sides, angles total " + mp4.getSumOfAngles());
System.out.println("There are " + MyPolygon.getTotalSides()
+ " total sides");

}
}

class MyPolygon {
double getSides;

MyPolygon() {
getSides = 3;
}

static double getTotalSides() {

return 0;
}

double getSides() {
// TODO Auto-generated method stub
return getSides;
}

MyPolygon(double newGetSides) {
getSides = newGetSides;
}

double getSumOfAngles() {
return ((getSides - 2) * 180);
}

void setGetSides(double newGetSides) {
getSides = newGetSides;
}

最佳答案

如果您确实需要一个方法,您可以使用可变参数( variable arity arguments )来实现此目的:

static double getTotalSides(MyPolygon... polygons) {
double x = 0;

for (MyPolygon p: polygons)
{
x+= p.getSides();
}
return x;
}

然后像这样调用:

System.out.println("There are " + MyPolygon.getTotalSides(mp1,mp2,mp3,mp4)
+ " total sides");

或者创建一个数组

MyPolygon myPolygons = new MyPolygon [4];
myPolygons [0] = mp1;
myPolygons [1] = mp2;
myPolygons [2] = mp3;
myPolygons [3] = mp4;
System.out.println("There are " + MyPolygon.getTotalSides(myPolygons)
+ " total sides");

但是,更好的解决方案是从一开始就将多边形存储在数组/列表中,然后将整个数组/列表传递给方法,执行循环并返回结果。但请注意,列表和数组是不同的,因此,您需要相应地修改方法签名。

关于java - 从方法获取值 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14926924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com