`

static --- 静态变量

    博客分类:
  • java
 
阅读更多

static的作用:由于类是对象的模型,基于一个类可以生成多个对象,每个对象都有自己的成员变量和方法,每个对象之间是相互独立的,但是有的时候我们希望这些对象可以共享一个成员变量,那么在这种情况下使用static。

static可以修饰变量、方法、代码块。静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载!

  • 修饰变量

修饰变量时,使用变量的方法:

public class Vehicle {
    static int engineNum = 1;//static修饰的变量
    public int wheel;
    public void func() {
        System.out.println("便于出行!");
    }
}
public class TestStatic {
    public static void main(String[] args) {
        System.out.println("引擎数量:" + Vehicle.engineNum);//使用类名访问
        Vehicle v = new Vehicle();
        System.out.println("引擎数量:" + v.engineNum);//使用对象名访问
    }
}

 可以使用类名直接访问静态变量,也可以通过新建对象,然后通过对象调用变量。

  • 修饰方法,static修饰方法,则方法就被称为静态方法,经常使用的main方法就是静态方法。静态方法可以访问同类中的静态变量,无法直接访问非静态变量。同理,静态方法中可以直接调用本类中静态方法,但是不能直接调用非静态方法。在静态方法中访问静态变量和静态方法只能通过创建对象来访问。
public class TestStatic {
    public static String brand = "made in China";
    public String color = "red";
    public static void main(String[] args) {
        System.out.println(color); //编译出错
        show();//编译出错
        TestStatic ts = new TestStatic();
        System.out.println(ts.color);//通过对象访问
        ts.show();//通过对象调用
    }
    
    public void show() {
        System.out.println("出行工具!");
    }
}

 

  •  非静态方法可以直接访问或者调用本类中的静态或者非静态的变量和方法

 

 

public class TestStatic {
    public static String brand = "made in China";
    public String color = "red";
    public static void main(String[] args) {
        
    }
    
    public void show() {
        System.out.println("出行工具!");
        System.out.println(brand);//可以访问静态变量
        System.out.println(color);//可以访问非静态变量
        start();//访问非静态方法
        main(new String[]{});//访问静态方法
    }
    
    public void start() {
        System.out.println("发动!");
    }
}

 

 

 

 

分享到:
评论

相关推荐

    static静态变量使用@Value注入方式.md

    ### static静态变量使用@Value注入方式 #### 一、引言 在Java开发中,特别是基于Spring框架的应用程序中,开发者经常会遇到需要为类中的成员变量注入外部配置值的情况。Spring框架提供了多种注入机制,其中`@Value...

    Static静态变量的应用(VB6.0代码编写)

    总的来说,Static静态变量是VB6.0编程中一个强大的工具,合理利用可以解决许多实际问题,但同时也需要谨慎处理,以确保代码的健壮性和效率。在实际编程中,我们需要根据具体需求权衡是否使用Static变量,以及如何...

    Python库 | django-static-precompiler-0.5.2.tar.gz

    `django-static-precompiler-0.5.2`是这样一个库,它是专为Django框架设计的,用于处理静态文件的预编译工作。Django是Python的一款流行Web框架,以其优雅的MVT(Model-View-Template)设计模式和强大的功能深受...

    static静态局部变量的妙用

    ### static静态局部变量的妙用 #### 一、引言 在软件开发和程序设计领域,合理运用各种语言特性能够显著提升代码的质量与效率。其中,`static`关键字就是一个非常实用的功能,在C/C++等语言中有着广泛的应用场景。...

    WPF绑定静态变量的示例代码

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF)中绑定控件到静态变量。WPF是一种用于构建桌面应用程序的强大框架,它允许开发者通过数据绑定机制将UI元素与后台数据模型紧密关联,实现视图与...

    PHP中的静态变量及static静态变量使用详解

    要创建一个静态变量,只需在变量声明前加上关键字static。 PHP中的静态变量有以下特点和用途: 1. 静态变量的生命周期 静态变量存在于函数作用域内,但是它们的生命周期贯穿整个脚本执行周期。不像普通局部变量在...

    前端开源库-smart-static-minify

    "smart-static-minify"是一个专注于前端资源优化的开源库,它致力于实现智能静态小型化,帮助开发者更有效地减小文件大小,提升网站的加载效率。这个库特别强调了对CSS预处理器Stylus的支持,这一点可以从压缩包子...

    全局 局部变量以及static 变量区别

    - **注意事项**: 静态变量有助于减少全局变量的使用,提高程序的可维护性。 #### 二、存储空间分配 - **全局变量**和**静态全局变量**: - **位置**: 静态存储区(数据段)。 - **特性**: 在程序的整个运行过程中都...

    static 静态变量加载

    statilocal java 静态变量和静态块加载顺序,静态变量和同名静态变量块加载的顺序。

    静态全局变量,静态局部变量,全局变量,局部变量

    - **静态变量**: 在程序多次调用过程中保持原有的赋值状态不变。 - **变量作用范围**: 通过`static`关键字限定变量的可见性范围。 - **静态存储方式**: 改变变量的存储位置,使之在整个程序运行期间都存在。 - **...

    WPF绑定静态变量的示例代码(二)加上IValueConverter

    接下来,我们可以在XAML中使用`{x:Static}`标记扩展将这个静态变量绑定到TextBox控件: ```xml <TextBox Text="{Binding Source={x:Static local:StaticData.MyStaticVariable}}"/> ``` 这里的`local`前缀是指命名...

    C# 公有变量 私有变量 静态变量

    本文将深入探讨C#中的公有变量(public)、私有变量(private)和静态变量(static),并结合20171028的C#编程实践进行说明。 **公有变量(public)** 公有变量是可以被程序任何部分访问的成员,无论是在同一类中...

    ios-block的局部变量和全局变量和static的静态变量联系.zip

    在iOS开发中,Block、局部变量、全局变量和静态变量(`static`)是编程中常见的概念,它们各自有自己的特点和用途,同时在特定情况下,它们之间也存在一定的联系。让我们详细探讨一下这些知识点。 首先,Block是...

    PHP-Static-Analysis-main.zip

    在IT行业中,静态代码分析(Static Code Analysis)是一种在不执行程序的情况下检查源代码的方法,以发现潜在的缺陷、错误、安全漏洞以及不符合编码规范的地方。在这个名为"PHP-Static-Analysis-main.zip"的压缩包中...

    qt5.15.9-static 静态编译库,已经编译完毕,直接安装即可

    3. 设置环境变量,将`C:\Qt\Static\qt5.15.9\bin`添加到系统的PATH变量中,这样命令行可以找到Qt的可执行文件。 4. 使用Qt Creator或者命令行进行项目配置,选择静态链接的编译选项,指定对应的Qt版本路径。 一旦...

    VB 静态变量举例

    在VB中,静态变量使用`Static`关键字来声明。与常规的局部变量不同,静态变量的生命周期跨越整个过程或函数调用,而不是每次调用时重新初始化。例如: ```vb Sub MyProcedure() Static counter As Integer ...

    CC++中的静态全局变量,静态局部变量,全局变量,局部变量的区别

    - 设计和使用访问静态变量的函数时,需考虑重入问题,因为静态变量都位于静态数据存储区,全局可见。 - 需要一个可重入的函数时,应避免在函数中使用`static`变量,以免出现内部存储器问题。 - 当函数返回值为指针...

    变量的存储类型、外部变量、static内部变量讲解

    - **外部静态变量**(全局变量前加上`static`):作用域限于声明它的源文件内,生命周期同样贯穿整个程序运行过程。 - **特点**: - 内部静态变量在每次函数调用时保留上次的值。 - 外部静态变量只在定义它的...

    C#中static静态变量的用法实例

    在C#编程语言中,`static`关键字用于声明静态成员,包括静态变量、静态方法等。这些成员是属于类本身而不是类的实例的,因此,它们在程序执行期间只存储一份,所有类的实例都可以共享。下面我们将详细探讨`static`...

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    public static String p_StaticField = "父类--静态变量"; // 变量 public String p_Field = "父类--变量"; // 静态初始化块 static { System.out.println(p_StaticField); System.out.println("父类...

Global site tag (gtag.js) - Google Analytics