Java面向对象之关键字static 入门实例

一、基础概念

  静态关键字 static 是成员修饰符,直接用于修饰成员。

  (一)特点:

    1.被静态修饰的成果,可以直接被类名所调用。

    2.静态成员优先于对象存在。

    3.静态成员随着类的加载而加载。随着类的消失而消失。静态成员的生命周期很长。

  (二)注意事项:

    1.静态方法只能访问静态成员,不能访问非静态成员。

    2.静态方法中不能出现this或者super关键字。

    3.主函数是静态的。

  (三)什么时候用:

    1.成员变量:如果数据在所有对象中都是一样的。直接用静态修饰。

    2.成员函数:如果函数没有访问过对象中的属性数据,那么该函数就是静态的。

  (四)成员变量和静态变量的区别:

    1.名称:成员变量也叫实例变量。静态变量也叫类变量。

    2.内存存储:成员变量存储到堆内存的对象中。静态变量存储到方法区的静态区中。

    3.生命周期:成员变量随着对象的出现而出现,随着对象的消失而消失。静态变量随着类的加载而加载。随着类的消失而消失。

  (五)静态代码块:

    1.随着类的加载而执行,而且只执行一次。

    2.给类进行初始化。

    3.类不需要创建对象,但是需要初始化。这是将部分代码存储到静态代码块中。

二、实例代码 

 1 class Person
 2 {
 3     private String name;
 4     private int age;
 5     static String country = "CN";//定义静态变量country
 6     
 7     Person(String name,int age)
 8     {
 9         this.name = name;
10         this.age = age;
11     }
12     public void show()
13     {
14         System.out.println("name="+name+",age"+age);
15     }
16     //既然sleep函数没有访问到对象中的属性,可以用static修饰该方法。(节约内存的使用)
17     public static void sleep()
18     {
19         System.out.println("sleep......");
20     
21     }
22     
23     static//静态代码块
24     {
25         System.out.println("static......");
26     }  
27     
28     static void show1()
29     {
30         System.out.println(country);//直接访问静态变量
31     }
32     static void show2()
33     {
34         System.out.println(Person.country);//通过类名的方式访问静态变量
35     }
36     
37 }
38 
39 class StaticDemo
40 {
41     public static void main(String[] args)
42     {
43         Person p = new Person("xiaoming",20);
44         Person.sleep();//通过类名的方式调用静态sleep函数
45         Person.sleep();
46         System.out.println(Person.country);//通过类名访问,输出静态变量country的值
47         Person.show1();
48         Person.show2();
49     }
50 }

三、代码运行

  

 

  

原文地址:https://www.cnblogs.com/zhuxr/p/8850227.html