在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。” 这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是: 方便在没有创建对象的情况下来进行调用(方法/变量)。 很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。 static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。
解析
- stastic关键字可以去修饰,成员变量比如,下方的static int data此变量一般称为类变量。(并且可以直接用类名去调用)
- 修饰成员方法之称为类方法(静态方法)看如下例子:在main中调用add方法必须去用satatic修饰,否者必须要去申请一个新对象。
- 用来做修饰语句时只会调用一次,并且在构造方法之前去执行,一般用与去对静态成员去做初始化。
- 调用时用类名直接去访问。
注意:
1.static修饰方法里面不能出现this关键字,因为static关键字方法在构造方法之前就调用了。
2.staic方法只能访问静态成员。
class student{
int age;
String name;
double sex;
static int data;
static {
System.out.println("这是static关键字");
}
student(int age,String name,double sex){
System.out.println("这是构造方法");
this.age=age;
this.name=name;
this.sex=sex;
}
}
public class Demo {
public static void main(String[] args) {
student stu1=new student(18,"xsn",98.5);
student.data=10;
System.out.println("add="+add(1,2));
}
static int add(int a,int b){
return a+b;
}
}