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关键字的使用方法。