Java 我应该使用静态方法还是静态字段
我想声明一些静态变量,并在代码中大量使用它们,因此在本例中,如果我想更改电话号码,我将在一个地方更改它:Java 我应该使用静态方法还是静态字段,java,multithreading,static,Java,Multithreading,Static,我想声明一些静态变量,并在代码中大量使用它们,因此在本例中,如果我想更改电话号码,我将在一个地方更改它: public class AppInformation{ static String phone_number="44444444"; } 所以现在我可以通过打电话给全班来获得电话号码: AppInformation.phone_number 另一个解决方案: public class AppInformation { public static String get_p
public class AppInformation{
static String phone_number="44444444";
}
所以现在我可以通过打电话给全班来获得电话号码:
AppInformation.phone_number
另一个解决方案:
public class AppInformation {
public static String get_phone_number(){
return "44444444";
}
}
现在我可以调用该方法:
AppInformation.get_phone_number
()
实际上我更喜欢第二种方法,因为它是线程安全的
这是正确的吗?还有其他建议吗?将其声明为
公共静态最终字符串电话\u NUMBER=“4444”
。由于只能读取此变量,因此它是线程安全的
解释了为什么我将其命名为PHONE\u NUMBER
,而不是phoneNumber
(或者打破了我所知的所有Java惯例PHONE\u NUMBER
),您可以将其声明为
静态最终字符串电话号码=“4444”;
不要再担心线程安全:)您想说的是,您需要一个常量,在Java中,这个常量通常表示为:
public class AppInformation
{
public static final String PHONE_NUMBER = "44444444";
}
注意,在您的示例中,您遗漏了:
- ,在类的情况下,这意味着该值将是包私有的
keywork,这意味着可以在程序运行时修改该值final
final
线程可以对其进行写入(稍后从中读取)。如果您不提供任何同步-它不是(线程)安全的。我应该将其声明为公共还是私有?我应该将其声明为公共还是私有?\取决于您希望它显示的位置-如果电话号码
仅在类AppInformation
中使用,则它应该是私有的;但是,如果您打算在整个应用程序中使用电话号码
,那么它应该是公用的
。同样的逻辑如下,对于受保护的
和包私有(请参阅我在回答中输入的访问修饰符链接)是的,非常感谢,这非常有帮助,因此我想我会将其声明为私有,因为我只是通过类本身来调用它,我指的是AppInformation.PHONE_NUMBER.:)