static 3个月前

编程语言
844
static

static意思是静态,可以修饰类、字段、属性、方法 标记为static的就不用创建实例对象调用了,可以通过类名直接点出来

static三种用法:

1.用于变量前

表示每次重新使用该变量所在方法、类或自定义类时,变量的值为程序这次运行最后一次为变量赋值时的值,这个方法称为静态函数:

private void s()
{
    static int a=1;
    a++;
}

方法第一次调用结束后a在内存内值为2; 方法第一次调用结束后a在内存内值为3;

2.在方法前修饰

表示此方法为所在类或所在自定义类所有,而不是这个类的实例所有,这个方法称为静态方法:

情况一:非静态方法

class t
{
    t(....(参数,下面同))
    {
        ~~~~(方法内容,下面同)
    }

    void s(....)
    {
        ~~~~
    }

}

当你在其他方法里调用这个类中的方法s,则需先声明这个类的变量

t sd = new t(....);
//再在t里调用方法:
sd.s(....);

情况2:静态方法

class t
{
    t(....(参数,下面同))
    {
        ~~~~(方法内容,下面同)
    }

    static void s(....)
    {
        ~~~~
    }
}

当你在其他方法里调用这个类中的方法s,则不用先声明这个类的变量如直接调用方法:

t.s(....);

3.用于class前

说明此类型无法新建实例,简单点说这个类型的方法全是静态方法,这个类里的非静态方法是不能使用的,这个类型称为静态类.

比如C#控制台操作的Cancle类里面的成员就被标记为静态的,可以直接用Concle.直接点出来使用。

如果没有标记为静态就要通过创建实例对象来调用,比如说动态字符串StringBuilder就要new一个实例来调用

StringBuilder sb = new StringBuilder();
sb.xxx(); //xxx是方法名

static class t
{
    ~~~~
}

class d
{
    ~~~~
    void f(....)
    {
        ~~~~
        t v = new t();//此时程序会出现错误
    }

}
image
EchoEcho官方
无论前方如何,请不要后悔与我相遇。
1377
发布数
439
关注者
2223131
累计阅读

热门教程文档

Objective-C
29小节
10.x
88小节
Rust
84小节
Spring Cloud
8小节
Kotlin
68小节