JAVA Static的一些用法

java 中static主要用法有三种:

1.第一种主要是用来定义一个静态成员变量;

1)这个静态成员变量可以通过类名.静态成员变量的方式调用。

例如:

  class Person{

       static String name;

       static int age;

  }

  class MainUi{

       public static vod main(String args[]){

            Person.name = "langwang";

            Person.age = 26;

           System.out.println("name:=" + Person.name);

           System.out.println("agae:=" + Person.age);

      }

  }

 

2)所有的对象使用的静态变量都是同一个变量,相当于是该类的一个全局变量。

 

  class Person{

       static String name;

       static int age;

  }

 

  class MainUi{

       public static vod main(String args[]){

            Person person1 = new Person();

            person1.name = "langwang";

            person1.age = 26;

           System.out.println("打印name:=" + person1.name);

           System.out.println("打印agae:=" + person1.age);

        

           Person person2= new Person();

            System.out.println("打印name:=" + person2.name);

           System.out.println("打印agae:=" + person2.age);

      }

  }

  person1和person2的打印出来的值都一样。

 

2.定义一个静态成员方法:

  class Person{

       static String name;

       int age;

     

      static void print(){
         System.out.println("print方法name:=" + name);
      }

  }

 

  class MainUi{

       public static vod main(String args[]){

             Person person1 = new Person();

            person1.name = "langwang";

            person1.age = 26;

           System.out.println("name:=" + Person.name);

           System.out.println("agae:=" + person1.age);

            Person.print();

         }

  }

其中1)静态成员方法调用的变量一定是静态成员变量,否则会编译出错。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。

2)基于同样的道理,静态方法中也不能使用关键字this。

3.静态代码块

class Person{

       static String name;

       int age;

       static{
          System.out.println("Person的静态代码块");
      }

      static void print(){
         System.out.println("print方法name:=" + name);
      }

  }

 

  class MainUi{

       public static vod main(String args[]){

             Person person1 = new Person();

            person1.name = "langwang";

            person1.age = 26;

           System.out.println("name:=" + Person.name);

           System.out.println("agae:=" + person1.age);

            Person.print();

         }

}

静态代码块在装载类的时候执行,静态代码块的作用主要是对静态成员变量赋值。

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值