【发布时间】:2021-02-27 23:49:12
【问题描述】:
我正在做 Java 的基础知识,所以在做一个更大的程序时,我遇到了这个问题,我想我会尝试在一个单独的程序中修复它。但这仍然让我感到困惑。 我已将问题分解为我无法解释的一件事 这是代码。
package Basics;
import java.util.Scanner;
import java.util.Arrays;
public class Polygon {
Scanner input = new Scanner(System.in);
int num;
Polygon(int n) {
this.num = n;
}
int[] getSides() {
int[] sides = new int[this.num];
for (int i = 0; i < this.num; i++) {
System.out.println("Enter length of side " + (i + 1));
sides[i] = input.nextInt();
}
//System.out.println(Arrays.toString(sides));
return sides;
}
int[] sides = this.getSides();
}
class runner {
public static void main(String[] args) {
Polygon rectangle = new Polygon(4);
int[] sides = rectangle.getSides();
System.out.println(Arrays.toString(sides));
System.out.println(Arrays.toString(rectangle.sides));
}
}
这是输出
run:
Enter length of side 1
5
Enter length of side 2
4
Enter length of side 3
3
Enter length of side 4
2
[5, 4, 3, 2]
[]
[]
BUILD SUCCESSFUL (total time: 3 seconds)
正如您所见,当从类外调用时,getSides() 方法返回正确的值,即用户输入的任何值。但从里面它没有? 我很确定这在某种程度上是一个愚蠢或菜鸟的问题,而且我缺少一些巨大的东西,但我真的需要帮助 这是什么原因造成的,我该如何解决?
【问题讨论】:
-
在java中的类名以大写字母开头,所以最好把
runner写成Runner -
对不起!不知道
标签: java arrays class oop methods