Java面向对象12——static详解
package oop.demon01.demon07;
// static :
public class Student {
private static int age;//静态变量 多线程
private double score;//非静态变量
public void run(){
// 非静态方法可以去调用静态方法里的所有东西
go();
}
public static void go(){
}
// mian方法也是 static
public static void main(String[] args) {
/* 静态属性:
Student s1=new Student();
System.out.println(Student.age);
System.out.println(s1.age);
System.out.println(s1.score);
*/
// 静态方法可以调用静态方法,不能直接调用普通方法(要new一个对象)
//run(); 不可以直接调用
new Student().run();// 对象.方法
Student.go();
go();
}
}
补充1.0
package oop.demon01.demon07;
// 补充:
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 person=new Person();
/*
静态代码块
匿名代码块
构造方法
*/
System.out.println("---------------------");
Person person1=new Person();
/*
匿名代码块
构造方法
*/
}
}
/*
{
//代码块(匿名代码块)
}
static {
//静态代码块
}
*/
补充2.0
package oop.demon01.demon07;
//静态导入包
import static java.lang.Math.random;
public class Test {
public static void main(String[] args) {
System.out.println(random());
}
}
// 注意:通过final修饰的类就不能被继承-----没有子类(final后断子绝孙)