1、static的概念
static是静态的意思,它是java中的一个修饰符,可以修饰成员方法,成员变量、类。
注意:main方法虽然是静态方法,但是它区别于成员方法,main中变量不能使用static修饰
2、被static修饰成员变量特点
(1)普通类不能静态修饰成员变量
(2)静态成员变量被该类所有对象共享,不属于对象属于类,静态变量是随着类的加载而加载的,优于对象出现的。
调用方式类名调用(静态方法名),对象名调用(new对象)。
(3)代码演示
package com.feng;
public class MyClass {
//静态代码块,不管调用几次,只运行一次
static {
System.out.println("这是静态代码块");
}
int num;//成员变量
static int numStatic;//静态变量
//成员方法
public void method(){
System.out.println("这是非静态方法。");
//成员方法可以访问成员变量
System.out.println(num);
//成员方法可以访问静态变量
System.out.println(numStatic);
}
//静态方法
public static void methodStatic(){
System.out.println("这是静态方法。");
//静态方法可以访问静态变量
System.out.println(numStatic);
//静态方法不能直接访问成员变量
//System.out.println(num);//错误写法
//静态方法中不能使用this关键字
//System.out.println(this);//错误写法
}
}
3、static使用总结
- 静态方法只能访问静态变量和静态方法
- 非静态方法可以访问静态变量或者静态方法
- 静态方法中没有this关键字,使用this是代表一个对象的地址值,静态方法比对象优先于出现,使用this会造成没有对象调用的情况。
- this:表示当前方法调用者的地址值,非静态方法默认存在一个this方法,用来识别我们不同对象调用。它在普通成员方法形参最前面隐士存在