Static关键字

Static关键字

格式:

Static 属性名:类属性,静态属性

Static 方法名:类方法,静态方法

由static修饰的成员(类成员,静态成员):

(1)类对象共享

(2)类加载时产生,销毁时释放,生命周期长

访问方式:

(1)      类名.成员名

(2)      对象名.成员名

特点:

在成员方法中:可以直接访问类中静态成员(this.成员名)

 

在静态方法中:

不能直接访问同一个类中的非静态成员,只能直接调用同一个类中的静态成员

不能使用this

可通过对象实例化后,对象.成员方法的形式访问非静态成员

例如:

publicclass User {

   //成员变量

   public String name;

   //类变量

   private String password;

   //成员方法

   publicvoid Name() {

      //在成员方法中直接调用静态属性

      this.password = "123";

      System.out.println(this.password);

      //在成员方法中直接调用静态方法

      this.hua();

      User.hua();

   }

   //类方法

   publicstaticvoid hua() {

      System.out.println("huahua");

  

   }

   //主方法

   publicstaticvoid main(String[] args) {

      //实例化对象

      Usera = new User();

      a.Name();

      //在静态方法中调用非静态成员

      a.password = "456";

      System.out.println(a.password);

   }

 

}

代码块

 

普通代码块(放在方法中):顺序执行,先出现,先执行

格式:{}

 

构造代码块(实例化对象一次,执行一次)创建对象时调用,优于构造方法执行

格式(同一类中可有多个):{}

 

 

静态代码块(只执行一次,在类加载时调用):

格式(可有多个):static{

}

 

例如://定义

publicclass Code {

   //构造方法

   public Code() {

      System.out.println("Code的构造方法");

   }

   //代码块

   {

      System.out.println("Code的构造代码块");

   }

   //静态代码块

   static {

      System.out.println("Code的静态代码块");

   }

}

 

 

publicclassCodeBlock {

   //构造方法

   public CodeBlock() {

      System.out.println("CodeBlock的构造方法");

   }

   //代码块

   {

      System.out.println("CodeBlock的构造代码块");

   }

   //静态代码块

   static {

      System.out.println("CodeBlock的静态代码块");

     

   }

   publicstaticvoid main(String[] args) {

      System.out.println("CodeBlock类主方法");

      {

         System.out.println("CodeBlock的普通代码块");

      }

     

     

      //实例化对象

      System.out.println("实例化Code类对象");

      Codec1= newCode();

      System.out.println("实例化CodeBlock类对象");

      CodeBlockCB= newCodeBlock();

 

      {

         System.out.println("CodeBlock的普通代码块");

      }

   }

 

}

 

执行结果如下:

CodeBlock的静态代码块

CodeBlock类主方法

CodeBlock的普通代码块

实例化Code类对象

Code的静态代码块

Code的构造代码块

Code的构造方法

实例化CodeBlock类对象

CodeBlock的构造代码块

CodeBlock的构造方法

CodeBlock的普通代码块

 

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页