zoukankan      html  css  js  c++  java
  • 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 }

    三、代码运行

      

     

      

  • 相关阅读:
    老杳:2017年中国集成电路产业十大新闻
    RMA退货流程解决方案
    Linux
    vue.js
    NET Core度身定制的AOP框架
    Timeline
    HTTP
    MVC 常用扩展点:过滤器、模型绑定等
    装箱拆箱
    jQuery Tree
  • 原文地址:https://www.cnblogs.com/zhuxr/p/8850227.html
Copyright © 2011-2022 走看看