17. static与代码块

static关键字

他跟之前学到的final和private有一个共同的特性,就是由他们定义的类、方法、对象、属性……都会被固定住。他的主要作用是定义静态的属性与静态的方法

静态的属性与方法都可以直接被调用,可以不用new一个对象出来。

public class a{
   static int sx1;
   int sx2;
   public static void ff1(){
       
  }
   public void ff2(){
       
  }
}
public class b{//测试类
   System.out.printf(sx1);//可以直接调用
   System.out.printf(sx2);//!!!会报错
   a dx = new a;
   System.out.printf(dx.sx2);//必须new一个dx(对象)才可以被调用
   ff1();//没错你没有看错,静态方法可以这么随意的调用
   //或
   a.ff1();//两种格式作用一样
   dx.ff2();//嗯哼,非静态方法的调用,没有new一样要报错
}

代码块

常见的代码块分为:代码块和静态代码块

这属于课外知识点,了解了解就行

代码块一般用于赋予初始值,不常用

静态代码块一样的比较特别,你不管调用他多少次,他都只会运行一次,并且是和他所在的类一起运行,所以他最快。

public class a{
   
   static{
       //静态代码块
  }
   
  {
       //代码块
  }
 
   public a{
       //构造方法
  }
}

编译器编译的顺序是:静态代码块 > 代码块 > 构造方法

posted @ 2021-12-04 12:22  始墨......至隐  阅读(43)  评论(0)    收藏  举报