static关键字
7.5 static关键字
目录
7.5.1 static是什么
- static是静态的意思,可以用来修饰成员变量、成员方法。
- static修饰成员变量之后称为静态成员变量(类变量),修饰方法之后称为静态方法(类方法)。
- static修饰后的成员变量,可以被类的所有对象共享(访问、修改)。
7.5.2 static修饰的成员变量是什么? 有什么特点?
静态成员变量(有static修饰,属于类、加载一次,内存中只有一份),访问格式
- 类名.静态成员变量(推荐)
- 对象.静态成员变量(不推荐)。
实例成员变量(无static修饰,属于对象),访问格式:
- 对象.实例成员变量。
7.5.3 两种成员变量各自在什么情况下定义?
- 静态成员变量:表示在线人数等需要被类的所有对象共享的信息时。
- 实例成员变量:属于每个对象,且每个对象的该信息不同时(如:name,age,money…)
7.5.4 static修饰成员方法的基本用法
成员方法的分类:
- 静态成员方法(有static修饰,归属于类),建议用类名访问,也可以用对象访问。
- 实例成员方法(无static修饰,归属于对象),只能用对象触发访问。
使用场景:
- 表示对象自己的行为的,且方法中需要访问实例成员的,则该方法必须申明成实例方法
- 如果该方法是以执行一个共用功能为目的,则可以申明成静态方法。
成员方法的分类和访问分别是什么样的?
静态成员方法(有static修饰,属于类和对象共享)访问格式:
- 类名.静态成员方法。
- 对象.静态成员方法。(不推荐)
实例成员方法(无static修饰,属于对象)的访问格式:
- 对象.实例成员方法。
7.5.6 静态代码块
- 格式:static{}
- 特点:需要通过static关键字修饰,随着类的加载而加载,并且自动触发、只执行一次
- 使用场景:在类加载的时候做一些静态数据初始化的操作,以便后续使用。
public class base {
public static void main(String[] args) {
}
static {
System.out.println("-------------static-------------");
}
}
随着类的加载而加载:
public class base {
public static void main(String[] args) {
System.out.println("-------------main方法-------------");
}
static {
System.out.println("-------------static-------------");
}
}