Static关键字
标签: Java
Static的关键用法,包括Static修饰的变量/属性,或者是Static修饰的方法。
首先,我们看一下下面的代码,以及代码中的注释:代码package com.itsme.staticMethod;
public class UseStaticMethod { static int base=0;//使用static修饰的变量为类变量, 类变量是类级别,就是说这个类的对象共享这个变量/属性。 int variable=10; public static void StaticMethod(int a){ //类方法 UseStaticMethod usm=new UseStaticMethod(); usm.comMethod(a); UseStaticMethod.StaticMethod1(a+UseStaticMethod.base); StaticMethod(a+base); System.out.println("类方法被调用"+a); //类方法中不能调用非类方法 //UseStaticMethod.comMethod(a);这种写法是错误的 //类方法中可以调用类方法和类变量,比如下面这行 UseStaticMethod.StaticMethod(a+base); } public void comMethod(int a){ UseStaticMethod.StaticMethod(a); //非类方法中可以使用类方法和类变量 } public static void StaticMethod1(int a){ //同StaticMethod中的用法一样,这里不再写代码; } }Static关键字修饰的变量叫类变量或者静态变量。其实类变量实在程序加载的时候创建的,先于类的所有对象创建。使用类变量的时候,不需要使用对象调用而是可以直接使用类名。Static关键字修饰的方法叫做类方法或者静态方法。类方法可以直接通过类名直接调用,比如:UseStaticMethod.StaticMethod(a+base);
类方法中不能使用this关键字,因为this关键字代表当前类的对象,当方法是对象级别的时候可以用this关键字调用,但是类方法是类级别的,所以不能用this关键字。
非类方法中可以使用类方法和类变量,比如:UseStaticMethod.StaticMethod(a+base); comMethod(base); //类方法中不可调用非类方法,比如: comMethod(a);//错误,这种写法是不允许的 //正确的写法如下 UseStaticMethod usm=new UseStaticMethod(); usm.comMethod(a); //通过对象来调用非类方法以及使用非类变量
PS:Static 静态代码块会在类加载的时候直接执行:
static{ ... ...}
以上就是Static关键字的使用方法。