gpt4 book ai didi

Java 错误 "Undefined name"

转载 作者:行者123 更新时间:2023-11-29 06:17:59 26 4
gpt4 key购买 nike

我已尝试解决此问题,但似乎找不到解决此问题的方法。该代码旨在打印一个范围内的素数,但它只是返回错误

Static Error: Undefined name 'PrimeNumbers

有人能帮帮我吗?

这是我的代码:

import java.util.*;

public class PrimeNumbers {

private List<Integer> listOfPrimeNumbers; //add a member variable for the ArrayList
public static void main(String args []){
PrimeNumbers primeNumberList = new PrimeNumbers(50);
primeNumberList.print(); //use our new print method
}

public PrimeNumbers (int initialCapacity) {
listOfPrimeNumbers = new ArrayList<Integer>(initialCapacity/2); //initialCapacity/2 is an easy (if not tight) upper bound
long numberOfPrimes = 0; //Initialises variable numberOfPrimes to 0
int start = 2;
boolean[] isPrimeNumber = new boolean[initialCapacity + 1];

for (int i=0;i==initialCapacity;i++) {//setting all values in array of booleans to true
isPrimeNumber[i] = true;
}
while (start != initialCapacity)
{
if (isPrimeNumber[start])
{
listOfPrimeNumbers.add(start);
//add to array list
numberOfPrimes++;
for (int i = start; start < initialCapacity; i+=start)
{
isPrimeNumber[i] = false;
}
}
start++;
}
}

public void print() {
int i = 1;
for (Integer nextPrime:listOfPrimeNumbers) {
System.out.println("the " + i + "th prime is: " + nextPrime);
i++;
}
}
//or just System.out.println(listOfPrimeNumbers);, letting ArrayList's toString do the work. i think it will be in [a,b,c,..,z] format

public List getPrimes() {
return listOfPrimeNumbers;
} //a simple getter isnt a bad idea either, even though we arent using it yet
}

最佳答案

假设,你的代码是这样组织的

./project
PrimeNumbers.java
PrimeNumbers.class

然后你cd./project然后输入

java PrimeNumbers

注意 - 这仅在您没有声明包时有效(iaw:您的类在默认包中)。通常你有一个包声明,然后它看起来有点不同。


奖金

getter 是个好主意,但在返回集合之前您应该三思而后行,因为这样一来,您就授予了接收者对您的(内部?)数据结构的完全访问权限,并且他可以更改该集合的值。而且您不应该使用原始类型 声明它。这是一个更好的实现方式:

public List<Integer> getPrimes() {
return Collections.unmodifiableList(listOfPrimeNumbers);
}

现在接收者知道他得到的是一个 Integer 值的列表并且不能修改结果。

关于Java 错误 "Undefined name",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4304059/

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