Java中static的用法

        在Java中,有一个使用频率非常高的关键字——static,那么大家知道它的用法吗?下面我们一起来了解一下它吧。

1、static的用法:

        static可以用来修饰成员变量、成员方法以及代码块等,被static关键字修饰的成员都会具备一些特殊属性。

2、static修饰成员变量:

        被static修饰的成员变量叫做静态变量。静态变量具有以下两个特征:

           a.静态变量的数据被本类中所有实例对象所共享;

           b.如果该静态变量的访问权限高于private,则该静态变量可通过“类名.变量名”直接访问。

       下面通过简单的实例来验证一下:

  定义一个学生类:

public class Student {
	static String school="CSU";
}

定义一个测试类:

public class Test {

    public static void main(String[] args) {
        // 通过“类名.变量”名调用静态变量
        System.out.println("Student.school:" + Student.school);
        // 创建学生对象
        Student s1 = new Student();
        Student s2 = new Student();
        // 输出实例对象静态变量属性
        System.out.println("s1.school:" + s1.school + "-----"+"s2.school:" + s2.school);
        // 修改其中一个实例对象的静态变量属性
        s1.school = "HNU";
        // 输出实例对象静态变量属性
        System.out.println("s1.school:" + s1.school + "-----"+"s2.school:" + s2.school);
    }
}

输出结果:

       输出结果基本验证了上述说法。值得注意的是,因为被static修饰的变量其值被类中所有实例对象所共享,所以其中任意一个实例对象修改了静态变量值,其它实例对象该静态变量值也会被修改。从存储的角度来说,系统在内存中只为类中的静态变量提供了一份数据,而未在类中各实例对象所占有的内存空间中再创建该变量。 

    注:访问权限:public>protected>default(一般省略)>private。

3、static修饰成员方法:

     在类中,被static修饰的方法称作静态方法。同静态变量一样,如果该静态方法的访问权限高于private,则该静态方法可通过“类名.方法名”直接调用,而不需要创建对象调用。

 下面也通过一个实例来看一下:

定义另一个学生类:

public class Student1 {
	static void study() {
		System.out.println("学习中");
	}
}

定义测试类:

public class Test1 {
	public static void main(String[] args) {
		Student1.study();
	}
}

输出结果:

      需要注意的是,静态方法只能访问被static修饰的成员,其原因就在于静态方法不需要创建对象就可以被调用。

4、static修饰代码块:

    在java中,被static修饰的代码块被称作静态代码块。静态代码块在类被加载时,就会被执行,并且只会执行一次(类只会加载一次)。详见实例:

定义一个学生类:

public class Student2 {
	static{
		System.out.println("静态代码块");
	}
	
	public void showName (String name){
		System.out.println(name);
	}
}

定义一个测试类:

public class Test2 {
	public static void main(String[] args) {
		Student2 s1=new Student2();
		Student2 s2=new Student2();
		s1.showName("张三");
		s2.showName("李四");
	}
}

输出结果:

根据输出结果,静态代码块仅被执行一次,并且在类加载时就开始执行,优先于类中的方法。  

 

好了,关于static关键字的用法暂时就介绍到这了(目前也只知道这些用法~)。

  • 54
    点赞
  • 134
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值