Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 示例中的静态公共和私有访问_Java_Oop - Fatal编程技术网

Java 示例中的静态公共和私有访问

Java 示例中的静态公共和私有访问,java,oop,Java,Oop,问题是: 编写包含以下内容的类计数器的定义: 名为counter的实例变量 类型为int 类型为int的名为limit的实例变量 名为nCounters的静态int变量,初始化为0 采用两个int参数的构造函数,将第一个参数分配给计数器和 第二个是限制。它还向静态变量nCounters添加一个 名为increment的方法。它不接受参数或返回值;如果 实例变量计数器小于限制,增量只向 实例变量计数器 名为递减的方法,也不接受参数或返回值;如果 计数器大于零,它只需从计数器中减去一即可 名为ge

问题是:

编写包含以下内容的类
计数器的定义:

  • 名为counter的实例变量 类型为
    int

  • 类型为
    int
    的名为
    limit
    的实例变量

  • 名为
    nCounters
    的静态
    int
    变量,初始化为0

  • 采用两个
    int
    参数的构造函数,将第一个参数分配给
    计数器
    和 第二个是
    限制
    。它还向静态变量
    nCounters
    添加一个

  • 名为
    increment
    的方法。它不接受参数或返回值;如果
    实例变量
    计数器
    小于
    限制
    ,增量只向 实例变量
    计数器

  • 名为
    递减
    的方法,也不接受参数或返回值;如果
    计数器
    大于零,它只需从
    计数器
    中减去一即可

  • 名为
    getValue
    的方法,返回实例变量
    计数器的值

  • 名为
    getNCounters
    的静态方法,返回静态变量的值
    n计数器

我的困境

代码工作正常,但我想知道以下内容:

为什么第一个静态文件是私有的,第二个是公共的?

我的代码:

public class Counter 
{
    private int counter;
    private int limit;
    private static int nCounters = 0;
    public Counter (int x, int y)
    {
        counter = x;
        limit   = y;
        nCounters++;
    }
    public void increment () 
    {
        if( counter < limit)
        {
            counter++;
        }
    }
    public void decrement () 
    {
        if(counter > 0)
        {
            counter--;
        }
    }
    public int getValue ()
    {
        return counter;
    }
    public static int getNCounters ()
    {
        return nCounters;
    }
}
公共类计数器
{
专用int计数器;
私有整数限制;
专用静态整数计数器=0;
公共计数器(整数x,整数y)
{
计数器=x;
极限=y;
nCounters++;
}
公共空间增量()
{
if(计数器<极限)
{
计数器++;
}
}
公共空间递减率()
{
如果(计数器>0)
{
计数器--;
}
}
公共int getValue()
{
返回计数器;
}
公共静态int getNCounters()
{
返回计数器;
}
}

第一个静态变量
nCounters
是私有的,因为您想在类中控制它-您不想让
计数器
之外的任何代码修改它。但是您希望能够在
计数器
之外读取其值,因此
getNCounters()
方法是公共的。

nCounters
是一个变量,用于计算调用类构造函数的次数。它是静态的,因为它不是一个实例变量,而是一个类变量(它的值由该类的所有实例共享)

nCounter
专用于封装它。只能通过名为
getNCounters
的只读方法在类外访问它。否则,我可以访问
nCounter
的值并直接更改它,从而导致创建的类的值不再可靠


您可以阅读更多关于代码的内容并更好地理解代码。

请您编辑您的问题,使其具有可读性(包括代码!)。我希望这会有所帮助-该网站不允许我发布,因为我在turings craft中有它。谢谢你的帮助。在看了你之前的问题后,我将其重新标记为java,如果我错了,请你自己更正。您应该始终在问题标签堆栈溢出中指定编程语言,这绝不是一个仅限Java的论坛。这是一个很好的例子,说明每个人都会覆盖彼此的编辑,从而导致一些混乱。但希望它现在稳定下来。@lvaroG.Vicario-我试图将它标记为java,但网站说我没有足够的声誉。那有什么更好的选择呢?太好了。现在有道理了。你说的@Averroes是什么意思?用箭头向上投票选出有用的答案,用复选框接受你问题的有效答案。