gpt4 book ai didi

java - 从对象和类本身调用静态函数之间的区别

转载 作者:行者123 更新时间:2023-12-01 18:03:23 25 4
gpt4 key购买 nike

我正在学习单例设计模式,并且我确实理解了这个概念。但是,我对以下代码有疑问:-

class Token
{
private static int i = 5;
private static Token obj = new Token();

//Private Constructor
private Token()
{
}

//Returning the singleton object
public static Token getObject()
{
return obj;
}

public static int getValue()
{
return i;
}
}

public class TestMain
{
public static void main(String args[])
{
Token obj = Token.getObject();

System.out.println("Without object " + Token.getValue());
System.out.println("With object " + obj.getValue());
}
}

实例变量 i 在这两种情况下都会被打印 -

Without object 5
With object 5

这两种获取实例变量的方式有什么区别,推荐哪一种?

最佳答案

i 是属于 Token 类的静态变量,因此对于 Token 类型的所有对象来说,它都具有相同的值.

出于所有实际目的,obj.getValue()Token.getValue() 相同,您可以使用其中任何一个,但为了更好的可读性,请使用 Token.getValue(),因为它强化了静态变量 i 和静态方法 getValue() 属于整个类而不是属于该类的想法。该类的某些对象。

关于java - 从对象和类本身调用静态函数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38932034/

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