Java 静态方法

10 篇文章 0 订阅
  • 静态  
  • 方便在没有创建对象的情况下来进行调用(方法/变量)。
  • static修饰的全局变量被称为静态变量,类变量
package sta;
public class Sta {
     public static int a;
     //类变量
     //无论创建多少个对象,类中的类变量也只有一个
     public Sta()
     {}   
     public Sta(int num)
     {
        // this.a= num;静态资源不需要在构造器中进行初始化  
       }
          
     public static void main(String[] argv)
     {
          Sta sta1 = new Sta();
          Sta sta2 = new Sta();
          //可以通过类的变量去访问类当中的静态修饰符(类变量)        
          sta1.a = 30;
          //但是类变量的标准访问方式应该是:类名,类变量名
          //在Java的内存中的方法区中的常量池与静态区
          //这两个特殊区域不受Java对象的限制,无论是否创建对象,只要引用类名,那么常量、静态的资源就会被创建
          Sta.a = 40;
          System.out.println(sta1.a);
          System.out.println(sta2.a);
     }
}
static修饰的方法被称为静态方法,类方法
     
package sta;
public class Sta {
     public static int a;
     String str;
     //类变量
     //无论创建多少个对象,类中的类变量也只有一个
     public Sta()
     {}   
     public Sta(int num)
     {
//        this.a= num;静态资源不需要在构造器中进行初始化
     }
     
     /**
      * 非静态方法可以访问类中的属性以及类变量
      * 非静态方法可以访问类中的方法以及类方法
      */
     public void test1()
     {
          a = 100;
          this.str = "dsja";
          this.test1();
     }
     
     public void test2()
     {}
     /**
      * 静态方法只可以访问类变量,而不能访问类中的属性
      * 静态方法只可以访问类方法,而不能访问类中的方法
      * 因为在静态方法中无法确定已经创建了类对象那个
      */  
     public static void test11()
     {
          a = 100;
          //this 不能访问
     }
     
     public static void test22()
     {
          test11();
     }
     
     public static void main(String[] argv)
     {
          Sta sta1 = new Sta();
          Sta sta2 = new Sta();
          //可以通过类的变量去访问类当中的静态修饰符(类变量)        
          sta1.a = 30;
          //但是类变量的标准访问方式应该是:类名,类变量名
          //在Java的内存中的方法区中的常量池与静态区
          //这两个特殊区域不受Java对象的限制,无论是否创建对象,只要引用类名,那么常量、静态的资源就会被创建
          Sta.a = 40;
          System.out.println(sta1.a);
          System.out.println(sta2.a);
     }
}
   
静态语句块
静态初始化代码块
这个代码块不需要创建对象,只要调用了或访问了类就会被执行
用于类变量的初始化操作
创建对象时,向执行父类、子类所有的静态初始化代码块
然后再去创建对象
先父类,再在父类后加上子类的扩展
package sta;
public class Sta {
     public static int a;
     String str;
     //类变量
     //无论创建多少个对象,类中的类变量也只有一个
     public Sta()
     {}   
     public Sta(int num)
     {
//        this.a= num;静态资源不需要在构造器中进行初始化
     }
     
     /**
      * 非静态方法可以访问类中的属性以及类变量
      * 非静态方法可以访问类中的方法以及类方法
      */
     
     //静态初始化代码块
     static {
          a = 30;
          System.out.println("调用了静态初始化代码块");
     }
     public void test1()
     {
          a = 100;
          this.str = "dsja";
          this.test1();
     }
     
     public void test2()
     {}
     /**
      * 静态方法只可以访问类变量,而不能访问类中的属性
      * 静态方法只可以访问类方法,而不能访问类中的方法
      * 因为在静态方法中无法确定已经创建了类对象那个
      */  
     public static void test11()
     {
          a = 100;
          //this 不能访问
     }
     
     public static void test22()
     {
          test11();
     }
     
     public static void main(String[] argv)
     {
          Sta sta1 = new Sta();
          Sta sta2 = new Sta();
          //可以通过类的变量去访问类当中的静态修饰符(类变量)        
          sta1.a = 30;
          //但是类变量的标准访问方式应该是:类名,类变量名
          //在Java的内存中的方法区中的常量池与静态区
          //这两个特殊区域不受Java对象的限制,无论是否创建对象,只要引用类名,那么常量、静态的资源就会被创建
          Sta.a = 40;
          System.out.println(sta1.a);
          System.out.println(sta2.a);
     }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值