package com.oop.Demo7;
//static 加在方法上叫静态方法,加在属性上叫静态属性
public class Student {
//静态属性的区别:
private static int age;//静态的变量 多线程 需要很多类去操作它的时候就可以用static
private double score; //非静态变量
//静态方法
// 非静态的方法可以调用静态方法里面的东西,因为静态方法和类加载的时候就一起存在
public void run(){
go();
}
// 静态方法可以调用静态方法当中的,不可调用非静态方法
public static void go(){
}
public static void main(String[] args) {
/* 静态属性的区别
Student s1 = new Student();
//假设是静态的变量,就用类名来调用
System.out.println(Student.age);
// System.out.println(Student.score);
System.out.println(s1.age);
System.out.println(s1.score);
*/
new Student().run();
Student.go();
go();
}
}
==============================================================
package com.oop.Demo7;
//静态代码块
public class Person {
//第2执行
{
//代码块(匿名代码块) 赋初始值使用
//创建对象的时候,就自动创建,在构造器之前
System.out.println("匿名代码块");
}
//第1执行
static {
//静态代码块
//和类加载一起执行,永久执行一次
System.out.println("静态代码块");
}
//第3执行
public Person(){
System.out.println("构造方法");
}
public static void main(String[] args) {
Person person1 = new Person();
System.out.println("======================");
Person person2 = new Person();
}
}
===============================================================
package com.oop.Demo7;
//静态导入包
import static java.lang.Math.random;
public class Test {
public static void main(String[] args) {
//随机数
// System.out.println(Math.random());
System.out.println(random());
}
}