美文网首页Monkey Java
课程5.1之static关键字的作用

课程5.1之static关键字的作用

作者: GitOPEN | 来源:发表于2015-07-13 23:00 被阅读51次

    转发请注明出处:
    安卓猴的博客(http://sunjiajia.com)


    本节课程将学习以下内容:

    • 静态成员变量的语法特点
    • 静态函数的语法特点
    • 静态代码块的语法特点

    静态成员变量的语法特点

    在定义成员变量的时候,在前面添加一个static关键字。

    • 格式:static int i;

    特点:

    • 静态成员变量可以直接用类名来调用,格式为:类名.成员变量名;
    • 所有的对象使用的静态变量是同一份,任何一个对象的静态变量被修改,那么其他对象的静态变量也会被修改。

    静态、普通成员变量的区别:

    看图:(理解)


    图5-1-01。静态、普通成员变量图5-1-01。静态、普通成员变量

    例子:(请动手加深理解)

    1.新建一个名为Person.java的Java源代码文件:

    class Person{
      static int i;
    }
    

    2.新建一个名为Demo01.java的Java源代码文件:

    class Demo01{
      public static void main(String[] args) {
    
        Person p1 = new Person();
        Person p2 = new Person();
    
        // 调用静态成员变量,
        // 由于所有对象使用的静态变量是同一份,所以,
        // p1.i 和 p2.i 的值都是10。
        Person.i = 10;
        System.out.println("p1的i的值为:" + p1.i);
        System.out.println("p2的i的值为:" + p2.i);
    
        System.out.println("=======分割线=======");
    
        Person.i = 20;
        System.out.println("p1的i的值为:" + p1.i);
        System.out.println("p2的i的值为:" + p2.i);
    
        System.out.println("=======分割线=======");
    
        // 由于所有对象使用的静态变量是同一份,所以,
        // 静态变量i的值先被p1.i = 30赋值为30,
        // 再被p2.i = 40赋值为40,
        // 最后,打印出来的p1.i和p2.i的值都为40。
        p1.i = 30;
        p2.i = 40;
        System.out.println("p1的i的值为:" + p1.i);
        System.out.println("p2的i的值为:" + p2.i);
    
      }
    }
    

    静态函数的语法特点

    格式:static 返回值类型 函数名{}

    特点:

    • 静态函数量可以直接用类名来调用,格式为:类名.函数名();
    • 静态函数中不能使用非静态成员变量;(注意)

    例子:(请动手)

    1.新建一个名为Dog.java的Java源文件:

    class Dog{
      String name;
      static String color;
    
      void shout01(){
        System.out.println("Dog的名字是:" + this.name);
      }
    
      static void shout02(){
        // 静态函数只能使用静态成员变量color。
        System.out.println("静态函数shout02(),Dog的颜色是:" + color);
      }
    
    }
    

    2.新建一个名为Demo02.java的Java源文件:

    class Demo02{
      public static void main(String[] args) {
    
        Person.name = "小黄";
        Person.color = "黄色";
    
        Dog.shout01();
        // 用类名直接调用静态函数
        Dog.shout02();
      }
    }
    

    静态代码块的语法特点

    作用:主要作用是为静态变量赋值初始值。

    格式:

    static{
      语句;
    }
    

    特点:

    • 没有名字,只有一个static;
    • 静态代码块在装载当前所在类的时候执行。

    相关文章

      网友评论

      本文标题:课程5.1之static关键字的作用

      本文链接:https://www.haomeiwen.com/subject/vevuqttx.html