static关键字

static关键字

Person类

package com.tiedandan.oop.Static关键字;

public class Person {
   //匿名代码块,一般用于赋初值,在构造方法被执行前执行
  {
       System.out.println("匿名代码块先执行");
  }
   //静态代码块,只执行一次
   static{
       System.out.println("静态代码块");
  }
   public Person(){
       System.out.println("person构造方法先执行");
  }
   public static void run(){
       System.out.println("runrun");
  }
}

测试类:

package com.tiedandan.oop.Static关键字;

import java.sql.SQLOutput;

public class application {
   //静态变量
   public static int age;
   //非静态变量
   public int score;
   //静态方法
   public static void print(){
       System.out.println("runrun");
  }
   //普通方法
   public void print2(){
       System.out.println("run");
  }
   public static void main(String[] args) {
       application a1 = new application();
       System.out.println(application.age);//静态变量可以直接被静态变量所在的当前类调用。
       System.out.println(a1.score);//普通变量只能通过对象调用.
       System.out.println(a1.age);//静态变量能被所有的实例共享。
       application.print();//当前类调用当前对象。
       a1.print();//当前实例调用当前静态方法
       a1.print2();//对象调用创建对象的类的普通方法。
//       application.print2();报错,当前类只能调用当前类中的静态方法和静态变量。
       //总结:静态方法和静态变量只能在当前类中使用,不能被其他类调用。
       //静态方法和变量能被当前类和当前类的所有实例调用。
       //通过当前类只能调用当前类的静态方法和变量,调用普通方法和变量需要创建对象实例。
       System.out.println("=======================================");
       Person person = new Person();
       person.run();
  }

}

posted on 2021-11-13 12:55  张铁蛋666  阅读(103)  评论(0编辑  收藏  举报

导航