关键字static简述

static: 可以修饰变量,方法,静态块,静态内部类,静态导包。

静态变量:类变量,即该变量属于类本身,所有实例对象共享,可通过 类.变量 的方式直接获取,无需创建实例对象。
静态方法:该方法属于类本身,也不需要实例对象就可获取,所有实例对象共享。
静态代码块:属于类本身,类加载时初始。
静态内部类:static修饰类只有静态内部类这种情况,
静态导包:这个是JDK1.5之后的新特性,import static这两个关键字连用可以指定导入某个类中的指定静态资源。
注意:因为类加载机制的原因,静态方法不能访问非静态资源,因为静态方法在类加载时初始化,而非静态资源则是在创建对象实例时才初始化,这个顺序导致静态方法不能访问非静态资源,而非静态则可以调用静态的。

下面来个例子:

import static java.lang.System.out;
public class StaticDemo {
    //成员变量
    private String name;
    //静态变量
    private static int age = 25;

    public static void getField(){
        System.out.println("age:" + age);
        //静态方法中用成员变量会报:不能调用非静态属性的
        //System.out.println("name:" + name);
    }
    static {
        System.out.println("静态代码块");
    }
    static class internalClass{
        public void show(){
            System.out.println("静态内部类方法 show");
        }
    }

    public static void main(String [] args){
        //因为已经静态导包,所以可以这样用
        out.println(123);
        System.out.println("类.静态变量方式调用:"+ StaticDemo.age);
        System.out.println("类.静态方法方式调用:");
        StaticDemo.getField();
        StaticDemo.internalClass obj = new internalClass();
        System.out.println("内部类show方法:");
        obj.show();
    }
}

输出:
静态代码块
123
类.静态变量方式调用:25
类.静态方法方式调用:
age:25
内部类show方法:
静态内部类方法 show

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值