static
public class Student {
private static int age // 静态变量
private double score // 非静态变量
public static void mian {
Student s = new Student()
System.out.print(s.age) // 0
System.out.print(s.score) // 0
System.out.print(Student.age)
System.out.print(Student.score) //报错, 获取不到非静态变量
go(); //go fun
run(); // 报错, 静态方法和类一起加载,加载的时候run方法还不存在
}
public void run () {
System.out.println("run fun");
}
public static void go () {
System.out.println("go fun");
}
public class Application {
// 匿名代码块 : 可以赋初始值, 和Application类同时创建
{
System.out.println("匿名代码块");
}
// 静态代码块
static {
System.out.println("静态代码块");
}
public Application() {
System.out.println("Application");
}
public static void main(String[] args) {
Application application = new Application();
System.out.println("-----");
Application application2 = new Application();
}
}
// 输出结果: 静态代码块只执行一次,
> 静态代码块
> 匿名代码块
> Application
> -----
> 匿名代码块
> Application
```java
public class Application{
public static void main() {
System.out.println(Math.random()); // 随机数
}
}
import static java.lang.Math.random; // 静态导入包
public class Application{
public static void main() {
System.out.println(random()); // 随机数
}
}
抽象类
抽象类不能 new, 只能靠子方法去实现
抽象内里可以写普通方法
抽象方法必须在抽象类中
public abstract class Person { //抽象方法
// 抽象类
public abstract void say2(); //抽象类, 不能有方法体, 只要名字
}
public abstract class Stuend extentd Person { //继承抽象类,必须重写抽象类里的抽象方法
@Override
public void say2() {
}
}