java - 什么是 [Android] Java 的 VB.NET 静态关键字?

标签 java android vb.net syntax equivalent

对于 VB.NET 的 Static 关键字,是否有 Java 等价物 - 特别是在 Android 上?对于那些不熟悉 VB.NET 的人,请看下面的代码 fragment ……

Sub MyFunc() 
    Static myvar As Integer = 0
    myvar += 1
End Sub 

Static 关键字使 myvar 在后续调用 MyFunc 之间保留其值。

因此,在对 MyFunc 进行三次调用后,myvar 的值将为:123

如何在 Java 的方法中创建一个交叉调用持久变量?可以吗?

最佳答案

没有。在一个方法中,Java 没有可以在各种调用中记住的东西。

如果你想在一个方法的多次调用中保留一个值,你应该将它存储为实例变量或类变量。

实例变量对于每个对象/实例是不同的,而类变量(或静态变量)对于它的类的所有对象都是相同的。

例如:

class ABC
{
    int instance_var; // instance variable
    static int static_var; // class variable
}

class ABC_Invoker
{
    public static void main(string[] args)
    {
        ABC obj1 = new ABC();
        ABC obj2 = new ABC();

        obj1.instance_var = 10;
        obj2.instance_var = 20;

        ABC.static_var = 50; // See, you access static member by it's class name

        System.out.prinln(obj1.instance_var);
        System.out.prinln(obj2.instance_var);
        System.out.prinln(ABC.static_var);
        System.out.prinln(obj1.static_var); // Wrong way, but try it
        System.out.prinln(obj2.static_var); // Wrong way, but try it
    }
}

关于java - 什么是 [Android] Java 的 VB.NET 静态关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8998832/

相关文章:

c# - streamwriters 有 Close() 和 Dispose() 有什么意义?

vb.net - 后台工作程序 CancelAsync() 不起作用

java - 返回具有通用类型的接口(interface)时出错

java - 如何使用java httpclient实现大文件的HTTP Post分块上传?

android -/res/layout中没有main.xml

android - 在没有android浏览器帮助的情况下在android中打开一个url?

c# - 如何使用 System.DirectoryServices.AccountManagement 将用户添加到 AD?

java - 应用程序在 FirebaseInstanceId.getInstance().getToken() 崩溃

Java 到 Kotlin 的转换问题 | - 或/& - 和

java - Firebase 远程配置无法在 OnComplete 中获取控制台值