06.Java面向对象——static关键字

一、关于new

在定义一个类时,只是在描述某类事物的特征和行为,并没有产生具体的数据。只有通过new关键字创建该类的实例对象后,系统才会为每个对象分配空间存储各自的数据

二、静态变量

static只能修饰成员变量,不能修饰局部变量

class Student {
	static String schoolName; // 定义静态变量schoolName
}

public class Example12 {
	public static void main(String[] args) {
		Student stu1 = new Student(); // 创建学生对象
		Student stu2 = new Student();
		Student.schoolName = "传智播客"; // 为静态变量赋值
		System.out.println("我的学校是" + stu1.schoolName); // 打印第一个学生对象的学校
		System.out.println("我的学校是" + stu2.schoolName); // 打印第二个学生对象的学校
	}
}

Student类中定义了一个静态变量,被所有实例所共享。“schoolName”这类特定的数据 在内存中仅需要存一份。

【为什么是传智播客,因为我自学看的书,就是他们写的这一本《Java基础案例教程》,写的真的好。我这些都是看这本书的笔记,并再次向大家推荐这本书《Java基础案例教程》黑马程序员编著】

三、静态方法

可以不用先创建对象而直接调用静态方法。

class Person {
	public static void sayHello() { // 定义静态方法
		System.out.println("hello");
	}
}

class Example13 {
	public static void main(String[] args) {
		//1.类名.方法的方式调用静态方法
		Person.sayHello();
		//2.实例化对象的方式来调用静态方法
		Person p = new Person();
		p.sayHello(); 
	}
}

Person.sayHello()——通过静态方法,不需创建对象就调用;

下一行通过实例化对象来调用

四、静态代码块

什么叫代码块?

{
    //大括号里的就叫代码块
}

用静态代码块对类成员变量进行初始化,类只加载一次>>静态代码块只执行一次

static{
    System.out.println("执行了静态代码块");
}

静态代码块,只会在第一次被加载时使用,且只会加载一次

猜你喜欢

转载自blog.csdn.net/qq_39883358/article/details/83580457