strtic关键字
概述
static关键字的使用,它可以修饰成员变量和成员方法,被修饰的成员是【属于类】的,不单单是属于某个对象的,也就是不需要通过创建对象来调用类中的成员信息。
定义和使用格式
类变量
当成员变量被static修饰后,该变量就成为【类变量】。该类的每个对象都【共享】同一个类变量的值。任何对象都可以更改类变量的值。类变量也可以不通过创建对象的方式进行操作,通过类也可以进行操作。
定义格式:
static 数据类型 变量名;
静态方法
当成员方法一旦被static关键字修饰时,该方法称为【类方法】。类方法一般是通过类名直接调用,而不需要单独创建对象来调用。调用方式很简单。习惯称为【静态方法】。
定义格式
修饰符 static 返回值类型 方法名(参数列表){
//方法内容
}
例如:
public static String attayToString(int[] arr){
//方法体内容
return 返回值;
}
静态方法调用的注意事项
- 静态方法可以直接访问类变量和静态方法
- 静态方法【不能直接访问】成员变量和成员方法。反之,成员方法可以【直接访问】类变量和静态方法
- 静态方法中不能使用this关键字
调用格式
静态方法建议通过类来调用,但是也可以通过对象来调用,会出现警告信息,不建议使用对象来调用。
格式:
//访问类变量
类名.类变量名;
//访问静态方法
类名.静态方法名(参数);
static修饰的内容:
- 是随着类的加载而加载,而且只会加载一次。
- 存储于一块固定的内存区域(静态区域),所以,可以被类直接调用。
- 它优先于对象存在,所以可以被类的所有对象所共享。
静态代码块
静态代码块:定义在成员位置,被static修饰修饰的代码{}
- 位置:类中方法外。
- 执行:随着类的加载而加载而且只会执行一次,优先于main方法和构造方法执行。
格式:
public class ClassName{
static{
//执行语句
//......
}
public void method(){
}
}
备注:static可以修饰成员变量,成员方法,代码块。在使用过程中,
如果不想创建对象来调用成员变量,成员方法,可以定义成静态的。
对于静态代码块来说,通常作用是通过对类中的成员变量进行初始
化。