Static变量与代码块

* static:是一个关键字,用于修饰成员变量和成员方法
* static的特点:
* 被所有的对象所共享
* 可以使用类名调用
* 静态的加载优先于对象
* 随着类的加载而加载

* static的注意事项:
* 静态方法:
* 可以调用静态的成员变量
* 可以调用静态的成员方法
* 不可以调用非静态成员变量
* 不可以调用非静态成员方法
* 静态方法只能调用静态的成员
* 非静态方法:
* 可以调用静态的成员变量
* 可以调用静态的成员方法
* 可以调用非静态的成员变量
* 可以调用非静态的成员方法
*
* 静态的方法中是否有this这个对象?没有的

//Math:包含了一些基本的数学运算方法
//static double PI
System.out.println(Math.PI);

//static double abs(double a) :返回绝对值
System.out.println(Math.abs(15));
System.out.println(Math.abs(-10));

//static double ceil(double a) 天花板 向上取整
System.out.println(Math.ceil(1.2));
System.out.println(Math.ceil(1.6));
//static double floor(double a) 地板 向下取整
System.out.println(Math.floor(1.2));
System.out.println(Math.floor(1.6));

//static long round(double a) :四舍五入
System.out.println(Math.round(1.2));
System.out.println(Math.round(1.6));

//static double max(double a, double b)
System.out.println(Math.max(3, 4));

//static double pow(double a, double b) :返回第一个参数的第二个参数次幂
System.out.println(Math.pow(3, 2));

//static double random() :返回一个随机数,大于零且小于一
System.out.println(Math.random());

//构造代码块:提取构造方法中的共性,每次创建对象都会执行,并且在构造方法执行之前执行

//静态代码块:随着类的加载而加载,只加载一次,加载类时需要做的一些初始化,比如加载驱动

以下代码执行顺序:
* BlockTest静态代码块执行 --- BlockTest的主函数执行了 --- Coder静态代码块执行 --- Coder构造代码块执行 --- Coder无参空构造执行
* Coder构造代码块执行 --- Coder无参空构造执行

 1 public class BlockTest {
 2     static {
 3         System.out.println("BlockTest静态代码块执行");
 4     }
 5     
 6     {
 7         System.out.println("BlockTest构造代码块执行");
 8     }
 9     
10 
11     public BlockTest(){
12         System.out.println("BlockTest无参构造执行了");
13     }
14     
15     public static void main(String[] args) {
16         System.out.println("BlockTest的主函数执行了");
17         Coder c = new Coder();
18         Coder c2 = new Coder();
19     }
20 }
21 
22 class Coder {
23     
24     static {
25         System.out.println("Coder静态代码块执行");
26     }
27     
28     {
29         System.out.println("Coder构造代码块执行");
30     }
31     
32     public Coder() {
33         System.out.println("Coder无参空构造执行");
34     }    
35     
36 }

猜你喜欢

转载自www.cnblogs.com/samuraihuang/p/9759093.html