Static关键字的用法(小白整理)

就我现在知道的static关键字的用法有如下几点:
1).修饰类成员变量和成员方法(static只能修饰类成员变量),使其成为静态成员变量和静态方法;静态成员变量和静态方法可以把它们理解为类的属性和方法,是类的所拥有的东西,它们是先于对象创建的,在类加载(类加载是在创建对象之前进行加载)的时候就在系统内存中为其分配了相应的空间;因为它们是先与对象创建的,所有可以不用创建对象就可以对其进行调用;创建对象后,也可以通过对象调用,所有的对象都是共享静态成员变量和方法的;也就是说,其中一个对象对变量的值进行了修改,其他对象调用这个变量得到的就是修改后的变量。
代码测试如下:

public class TestStatic {
    public static void main(String[] args) {
        System.out.println(Static_.a);//类直接调用变量
        Static_.fun();//类直接调用方法
        //创建2个对象
        Static_ s1 =new Static_();
        Static_ s2 = new Static_();
        //对象调用属性
        System.out.println(s1.a);
        System.out.println(s2.a);
        //修改过后,重新输出
        s1.a = 10; 
        System.out.println(s1.a);
        System.out.println(s2.a);
    }
}
class Static_{
    //静态变量
    public static int a = 3;
    public Static_() {
    }
    public static void fun(){
        System.out.println("静态方法");
    }
}

这里写图片描述
2).static修饰代码块,表示静态代码块,代码块就是写在一对大括号中的一段代码,在大括号前加个static关键字修饰,就成了静态代码块;静态代码块的执行时机也是在对象创建前(类加载的时候)执行,并且在整个程序运行过程中只执行一次;
代码测试如下:

public class TestStatic {
    public static void main(String[] args) {
        //创建2个对象,测试静态代码块的执行顺序
        Static_ s1  = new Static_();
        Static_ s2  = new Static_();
    }
}
class Static_{
    static  {System.out.println("静态代码块1被执行!");}
    public Static_() {
        // TODO Auto-generated constructor stub
        System.out.println("对象创建成功!");
    }
    static  {System.out.println("静态代码块2被执行!");}
}

这里写图片描述
3)修饰成员内部类:自动升级为普通类,相当于一个独立的类。当static修饰成员内部类的时候,不用创建外部类对象,可直接创建成员内部类对象。但是需要导包。

import TestStatic.Static_.Inner;
public class TestStatic {
    public static void main(String[] args) {
        Static_.Inner inner = new Inner();
    }
}
class Static_{
    public Static_() {
        // TODO Auto-generated constructor stub
    }
    public static class Inner{
        public Inner(){
            System.out.println("成员内部类创建成功!");
        }
    }
}

这里写图片描述
在java中,如果一个类中的所有方法,属性都是用static修饰的话,那么这个类被叫做工具类;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值