在类中,用static修饰的方法我们称之为静态方法或类方法。
1.静态方法特点
-
静态方法优先于对象存在,静态方法随着类的加载就已经存在了。
-
我们可以通过 类名.静态方法() 或 对象.静态方法() 来调用静态方法。
2.静态方法的使用
【示例】静态方法的使用示例
class Student {
// 成员变量
String name;
// 构造方法
public Student(String name) {
this.name = name;
}
// 静态方法
public static void study() {
System.out.println("good good study, day day up");
}
}
public class StaticMethodDemo {
public static void main(String[] args) {
// 使用类名调用静态方法
Student.study();
// 实例化一个对象
Student stu = new Student("小明");
// 使用对象来调用静态方法
stu.study(); // 不建议使用!
}
}
3.静态方法和成员方法区别
-
区别一:访问变量区别
成员方法中既能访问成员变量,又能访问静态变量。
静态方法中只能访问静态变量,不能访问成员变量,因为对象可能还未初始化。
-
区别二:访问方法区别
成员方法中既能访问成员方法,又能访问静态方法。
静态方法中只能访问静态方法,不能访问成员方法,因为对象可能还未初始化。
-
区别三:访问this区别
成员方法中可以访问this。
静态方法中不能访问this,因为对象可能还未初始化。
【示例】静态方法和成员方法区别
class Student {
// 成员变量
String name;
// 静态变量
static String classRoom = "WH8528";
// 构造方法
public Student(String name) {
this.name = name;
}
// 成员方法
public void show() {
// 成员方法中既能访问成员变量,又能访问静态变量。
System.out.println("name:" + name + " classRoom:" + classRoom);
// 成员方法中既能访问成员方法,又能访问静态方法。
instanceMethod();
staticMethod();
// 成员方法中可以访问this。
System.out.println(this);
}
public void instanceMethod() {
System.out.println("instanceMethod");
}
// 静态方法
public static void study() {
// 静态方法中只能访问静态变量,不能访问成员变量。
// System.out.println(name); // 编译失败
System.out.println(classRoom);
// 静态方法中只能访问静态方法,不能访问成员方法。
// instanceMethod(); // 编译失败
staticMethod();
// 静态方法中不能访问this,因为对象可能还未初始化。
// System.out.println(this); // 编译失败
}
public static void staticMethod() {
System.out.println("staticMethod");
}
}
public class StaticMethodDemo {
public static void main(String[] args) {
// 实例化一个对象
Student stu = new Student("小明");
// 调用成员方法
stu.show();
// 调用静态方法
Student.study();
}
}
ps:如需最新的免费文档资料和教学视频,请添加QQ群(627407545)领取。