【问题标题】:Using Private Static Boolean使用私有静态布尔值
【发布时间】:2012-09-29 00:08:26
【问题描述】:

我是一个全新的 java 学生,我一直在搜索 google 和我的教科书,以弄清楚使用私有静态布尔值到底意味着什么,尽管这些都没有任何意义,所以我想我会问专家。我的问题是我需要使用私有静态类,尽管我不知道如何从 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();

我几乎不知道如何以新的方式应用我已经知道的东西。

【问题讨论】:

  • 请张贴代码并更具体地说明问题。
  • 是的,我们需要更多信息来为您提供适当的帮助。我不知道人们是如何回答这个问题的。
  • 你的意思是私有静态方法吗??因为私有静态类不可能是真的
  • 我确定我知道,我还不太熟悉这些术语
  • 你是哪个品牌的?

标签: java static private


【解决方案1】:

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

标记

私有静态布尔值:

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

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

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

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

  class MyClass {
       private static boolean bool;
   }

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

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

【讨论】:

  • 我不同意。 java中的内部类可以标记为私有的。你的概括是不正确的。
  • 我想你没听懂我说的。我指的是这句话“你不能有私人课程”,这是错误的。现在再次阅读我的评论,了解原因。
  • 这正是我朋友的问题。内部类可以是私有的。你是说Java中的类不能是私有的。这就是为什么我要求你不要一概而论或特定于教育部。我的英语真的那么差吗:)
  • @bot 只是为了说清楚,我知道高级课程(外部课程)不能将我设为私有,但内部课程可以.. 抱歉,如果我的概括令人困惑?..
  • @bot...抱歉,我还在半睡半醒..我在上面的评论中提到过...顺便说一句,你的英语很好.. :)
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

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

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

    boolean:简单的表示方法返回一个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;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-06-08
      • 2012-11-08
      • 1970-01-01
      • 2017-10-13
      • 2015-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多