Java static关键字

一、概述

  本文将讨论Java static关键字的使用。它可以被用于类名、变量、方法和块。

二、静态类

  只有当一个类为嵌套类时才能使用static,这个嵌套类可以不使用外部类的对象就可以访问。例子:
复制代码
public class TestMain  
{  
  static class X  
    {  
    static String str="Inside Class X";  
    }  
public static void main(String args[])  
    {  
        X.str="Inside Class TestMain";  
        System.out.println("String stored in str is- "+ X.str);  
    }     
}  
复制代码
  注意:静态的内部类不能访问外部类的实例数据。例子:
 

三、静态代码块

  静态块通常被用来改变静态变量的默认值。静态块在类被加载到内存的时候执行,一个类可以有多个静态块,它们的执行顺序与定义顺序相同。例子:
 
复制代码
public class TestMain  
{  
    static  
    {  
        i=20;  
    }  
  static int i = 10;  
  public static void main(String[] args)  
    {  
        System.out.println(i);  
    }  
  static  
    {  
        i = 30;  
    }  
}  
复制代码
  执行的结果是:30
  上面的代码等价于:
复制代码
public class TestMain  
{  
  static int i;  
  static  
    {  
        i=10;  
        i=20;  
        i=30;  
    }  
  public static void main(String[] args)  
    {  
        System.out.println(i);  
    }  
}  
复制代码

四、静态方法

  静态方法能够不使用类对象来访问类的成员变量。它可以通过使用对象来访问非静态方法和非静态变量。静态方法可以被静态的或者非静态方法直接访问。例子:
复制代码
public class TestMain  
{  
    static int i;  
    static String s;  
    public static void main(String args[]) //Its a Static Method  
    {  
        //TestMain obj=new TestMain();  
        System.out.println(i);  
        System.out.println(s);  
    }  
}
复制代码

五、静态变量

  • 静态变量也是类的变量
  • 这种变量根据数据类型获取默认值
  • 存储在静态变量中的数据被所有的类对象共用
  • 静态变量的内存分配仅仅发生在类被加载到内存中
  • 静态变量可以被其他类使用类名来访问
  • 与其他非静态变量相比,静态变量可以直接被静态或者非静态方法访问
posted @   温布利往事  阅读(386)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示