0

我是一个全新的 Java 学生,我一直在搜索谷歌和我的教科书,以弄清楚使用私有静态布尔值到底意味着什么,尽管这些都没有任何意义,所以我想我会问专家。我的问题是我需要使用私有静态类,尽管我不知道如何从 main 中提取我需要的数据(我的教授已经写好了)。您有什么建议或见解吗?我基本上是将已经以嵌套循环形式编写的代码转换为私有类。

编辑:这是我必须使用的(我不是在寻找讲义)

import java.io.*;
import java.util.*;

public class Foo
{
public static void main (String[] args) throws Exception
{

    int lo = 0;
    int hi = 0; 
    String infileName; 

    if (args.length < 3)
    {
            System.out.println("CMD LINE INPUT ERROR: Must enter 2 numbers followed by name of input file on cmd line.");
            System.exit(0);
    }

    lo = Integer.parseInt(args[0]);
    hi = Integer.parseInt(args[1]);
    infileName = args[2];

    for( int n = lo; n<=hi; n++)
        if (isPrime(n))
            System.out.print(n + " ");
    System.out.println();

    for( int n=lo; n<=hi; n++)
        if (isPerfect(n))
            System.out.print(n + " ");
    System.out.println();

    while (infile.ready()) 
    {
        String line = infile.readLine(); 
        if ( isPalindrome( line ) )
            System.out.println( line + " IS a palindrome");
        else
            System.out.println( line + "is NOT a palindrome");
    }
    infile.close();

} 

}

作业分为三个部分:寻找素数、完美数和回文数。对于第 1 部分的示例,我以前使用以下方法查找素数

for(int i= lo; i < hi; i++)
        {

            boolean isPrime = true;

            for(int j=2; j < i ; j++)
            {

                if(i % j == 0)
                {
                    isPrime = false;
                    break;
                }
            }

            if(isPrime)
            System.out.print(i + " ");
        }

        System.out.println();

我大多不确定如何以新的方式应用我已经知道的东西。

4

3 回答 3

2

首先,您提到了私有静态类,您可以拥有一个静态内部类但是你不能用私有修饰符标记一个类(外部类),即你不能有一个私有类(外部类)。外部类只能用publicfinalabstractdefault 标记(无修饰符)

私有静态布尔值:

private是一个访问修饰符,可用于实例变量和方法。私有变量和私有方法只限于声明它们的类。

static是一个非访问修饰符,可用于变量和方法。静态变量由类的所有实例共享。

boolean是一种原始数据类型,可以为真或假。

如果您将布尔变量声明为私有静态,例如

  class MyClass {
       private static boolean bool;
   }

1. 这个布尔变量只能从它定义的类(MyClass)中访问。

2.为这个类(MyClass)创建的所有实例共享这个布尔变量。

于 2012-09-29T00:17:45.277 回答
0

您不会从 main 中获取数据,main 会跳转到其他函数并将所需的数据传递给它们。如果您在谈论成员变量,基本上只是将当前本地但多次使用的内容移动到类块下方而不是任何函数中。

于 2012-09-29T00:13:19.237 回答
0

您对“类”一词的使用令人困惑,尽管我相信您实际上是指“方法”而不是“类”

通过“私有静态布尔值”,我猜你正在谈论一个方法的标题,它是一个代码块,可以在程序中的任何位置调用(调用)。一个方法通常接受一定数量的参数,并且经常但不总是返回一个值。

private:将方法的使用限制在定义它的中。

static:静态方法,可以通过类名直接访问,不需要任何对象,即ClassName.methodName() vs. ObjectName.methodName()。

boolean:简单地表示方法返回一个布尔值。

您的代码可能如下所示:

private static boolean isBiggerThanZero( int number)
{
    boolean isBigger = false;

    //Do something with number or test it for a condition
    if( number > 0 )
        isBigger = true;

   return isBigger;
}
于 2012-09-29T00:21:20.910 回答