java面向对象07_静态方法(static关键字)

在类中,用static修饰的方法我们称之为静态方法类方法

1.静态方法特点

  1. 静态方法优先于对象存在,静态方法随着类的加载就已经存在了。

  2. 我们可以通过 类名.静态方法()对象.静态方法() 来调用静态方法。

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)领取。

发布了55 篇原创文章 · 获赞 0 · 访问量 802

猜你喜欢

转载自blog.csdn.net/zhoujunfeng121/article/details/104581714