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 }

    三、代码运行

      

     

      

  • 相关阅读:
    sql中where和having的区别
    mysql中locate和substring函数使用
    使用jdk进行数据迁移(sqlite迁移mysql)
    mysql数值函数
    mysql字符串函数
    zabbix-2.2.2(Ubuntu 14.04 LTS/OpenLogic 7.2)
    Piwik-2.16.1 (OpenLogic CentOS7.2)
    Nagios-4.1.1 (OpenLogic CentOS 7.2)
    Bugzilla-5.0.3 (OpenLogic CentOS 7.2)
    GitLab-CE-8.9.4 (OpenLogic CentOS 7.2)
  • 原文地址:https://www.cnblogs.com/zhuxr/p/8850227.html
Copyright © 2011-2022 走看看