我对Java编程相对较新,并且面向对象方面存在一个小问题.那么,让我们来吧!我最近编写了一个程序来查找0和数字x之间的所有素数,其中"i"是素数.在该程序中,两条线与以下相同.
BigInteger one = BigInteger.valueOf(i);
one = one.nextProbablePrime();
Run Code Online (Sandbox Code Playgroud)
这些行的目的是将整数i转换为BigInteger以使用nextProbablePrime方法.回想一下,我看到我没有使用关键字"new",因此没有创建BigInteger类的实例,但程序仍然编译并运行顺利.为什么程序能够使用nextProbablePrime方法,如果没有创建BigInteger类的实例,则编译并运行?此外,不会在其他情况下以及使用其他类和方法创建对象.此外,它是否会阻止我使用BigInteger类的全部功能,它是否被认为是良好的编程习惯?
我还将上面的两行代码重写为两行代码,使程序的其余部分保持不变.
BigInteger one = new BigInteger(String.valueOf(i));
one = one.nextProbablePrime();
Run Code Online (Sandbox Code Playgroud)
我改变了两者的第一行,包括使用"新"这个词.正如我所料,它没有任何缺陷.回到我的其他问题,哪一个更好?哪一个会给我最大的功能,尽管我正在使用的类或方法,哪一个被认为是更好的做法?
总而言之,我的问题是:1.哪一个是正确的? 2. 尽管我正在使用的课程或方法,哪一个适用于所有情况? 3. 哪一个被认为是良好的编程习惯? 4. 第一个如何在不创建对象的情况下工作?
快速链接到Biginteger类,对于那些可能想要查看它的人 - 在这里
import java.math.BigInteger;
public class Classes{
static int i; //"i" is initialized
static int x = 200; //FYI, x is the upper limit for primes to be found (ex, in this case, 0 - 200)
public static void main(String[] args) {
for(i = 0; i < x;){ //"i" is assigned the value of 0
BigInteger one = BigInteger.valueOf(i); // The following lines find the prime(s)
one = one.nextProbablePrime(); // Order by which primes are found - int > BigInteger > int …
Run Code Online (Sandbox Code Playgroud)