static修饰成员变量的使用
static关键字: 被该类的所有对象共享使用,不依赖于某个具体的对象,和对象无关,依赖于类,在内存中唯一只有一份
static修饰修饰成员变量(类变量: 依赖于类,与对象无关)
1.定义格式: static 数据类型 变量名称 = 数据值;
2.使用格式: 类名.静态成员变量名称; 推荐使用
对象名.静态成员变量名称; 不推荐使用
### static修饰成员方法的使用
static修饰成员方法(类方法: 依赖于类,与对象无关)
1.定义格式:
public static 返回值类型 方法名称(参数列表...) {...}
2.使用格式:
类名.静态成员方法名称(...) 推荐使用
对象名.静态成员方法名称(...) 不推荐使用
3.注意: 静态成员变量也有默认初始化值
public class JavaEE372Student {
String name;
static String room;
public static void show() {
System.out.println("班级: "+room);
}
}
public class Demo05Static {
public static void main(String[] args) {
System.out.println(JavaEE370Student.room);
JavaEE372Student stu = new JavaEE372Student();
System.out.println(stu.room);
JavaEE372Student.room = "HMTBD1002";
JavaEE372Student.show();
stu.show();
}
}
静态的内容只能使用静态的内容,不能使用非静态的内容
静态的注意事项
(1)静态方法可以直接访问静态变量和静态方法。
(2)静态方法不能直接访问非静态成员变量或非静态成员方法。
(3)非静态方法可以直接访问静态变量或静态方法。
(4)静态方法中,不能使用this关键字。
public class HMTeacher {
String name;
static String country = "CHINA";
public static void show() {
System.out.println("国籍: "+country);
System.out.println("姓名: "+name);
}
public static void method() {
System.out.println("静态方法...method...");
}
public void printName() {
System.out.println("姓名: "+name+", 国籍: "+country);
show();
}
}
public class Demo06StaticNotice {
public static void main(String[] args) {
HMTeacher ht = new HMTeacher();
ht.printName();
}
}
静态代码块
静态代码块 static { }---- 完成静态成员变量的赋值 静态代码块,仍然属于静态内容,内部不能使用非静态
public class Demo07StaticKuai {
public static void main(String[] args) {
System.out.println(Person.country);
}
}
public class Person {
String name;
static String country = "CHINESE";
public Person(){
System.out.println("空参构造被执行了...");
}
static {
System.out.println("静态代码块执行了...");
country = "CHINA";
(5)完成项目的初始化工作
init();
}
public static void init() {
System.out.println("项目正在完成初始化,需要稍等10秒钟....");
for (int i = 10; i > 0; i--) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(i);
}
System.out.println("项目初始化完成,你可以尽情使用了....");
}
}