• 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 }
  • 相关阅读:
    P2679 子串
    线段树优化建边
    P2444 [POI2000]病毒
    P3966 [TJOI2013]单词
    4327: JSOI2012 玄武密码
    UVA1449 Dominating Patterns
    P1250 种树
    P2255 [USACO14JAN]记录奥林比克
    SP283 NAPTIME
    P3436 [POI2006]PRO-Professor Szu
  • 原文地址:https://www.cnblogs.com/samuraihuang/p/9759093.html
Copyright © 2020-2023  润新知