zoukankan      html  css  js  c++  java
  • Static

    摘要:

        Java 中static应用并不怎么广泛,编程中也尽量不建议使用static,作为全局变量,具备太多不稳定性,给后期代码整合带来隐患。本文主要综合网上一些资料整理关于static的基本用法与一些自己觉得有意思的例子。

    1 基本用法

      Static 修饰的对象,不依赖实例,加载于JVM的堆中,只有一份,由所有类共享。所修饰的对象访问权限无限制,可以为public,protect,private。

      1) 修饰方法

        Static方法调用推荐直接通过类名调用(类名.方法名),以区别普通方法。正因为static方法可随时调用,所以static方法中不能依赖于任何普通方法,普通变量。即使你想用,IDE也会提醒你把调用的方法,

        变量加上static修饰符。

      2) 修饰变量

        Static变量访问推荐直接通过类名调用(类名.变量名),一般static变量值都固定,编程中推荐变量名全大写,方便后期识别。静态变量属于整个类,所以静态变量不能放在方法内部。

      3) 修饰代码块

        Static代码块自动执行,静态代码块的执行顺序如下:

          1.父类的静态代码块

          2.子类的静态代码块

          3.父类的非静态代码块 (即int i=5)

          4.父类的构造函数

          5.子类的非静态代码块 (即int j=5)

          6.子类的构造函数

          验证请见例子二

      4) 修饰类

        Static修饰类,此类一定是内部类。Static内部类使用范围不大,方便类单元测试。静态内部类的创建不依赖外部类实例。

    2 好玩的例子

    例子一

     1 public class Father {
     2 
     3   public static void print() {
     4 
     5     System.out.println("Father");
     6 
     7   }
     8 
     9 }
    10 
    11 public class Child extends Father {
    12 
    13   public static void print() {
    14 
    15     System.out.println("Child");
    16 
    17   }
    18 
    19 public static void main(String[] args) {
    20 
    21   Father child = new Child();
    22 
    23   child.print();
    24 
    25   }
    26 
    27 }
    View Code

    输出结果:Father

     1 public class Father {
     2 
     3   public void print() {
     4 
     5     System.out.println("Father");
     6 
     7   }
     8 
     9 }
    10 
    11 public class Child extends Father {
    12 
    13   public void print() {
    14 
    15     System.out.println("Child");
    16 
    17   }
    18 
    19   public static void main(String[] args) {
    20 
    21     Father child = new Child();
    22 
    23     child.print();
    24 
    25   }
    26 
    27 }
    View Code

    输出结果:Child

    例子二

     1 public class Father {
     2 
     3   static {
     4 
     5     System.out.println("Father 静态块");
     6 
     7   }
     8 
     9   int i = 5;
    10 
    11   public Father() {
    12 
    13     System.out.println("Father 构造");
    14 
    15   }
    16 
    17   public void print() {
    18 
    19     System.out.println("Father");
    20 
    21   }
    22 
    23 }
    24 
    25 public class Child extends Father {
    26 
    27   static {
    28 
    29     System.out.println("Child 静态块");
    30 
    31   }
    32 
    33   int j = 5;
    34 
    35   public Child() {
    36 
    37     System.out.println("Child 构造");
    38 
    39   }
    40 
    41   @Override
    42 
    43   public void print() {
    44 
    45     System.out.println("Child");
    46 
    47   }
    48 
    49   public static void main(String[] args) {
    50 
    51     Father child = new Child();
    52 
    53     child.print();
    54 
    55   }
    56 
    57 }
    View Code

    输出结果:

    Father 静态块

    Child 静态块

    Father 构造

    Child 构造

    Child

    计划、执行、每天高效的活着学着
  • 相关阅读:
    php关键字
    PHP PSR-2 代码风格规范 (中文版)
    关于未来编程发展趋势的九大预测
    canvas动画基础
    HTML 5 Web Sockets应用初探
    jquery简单插件到复杂插件(3)--顶部导航固定
    jquery简单插件到复杂插件(2)--简单手风琴
    jquery简单插件到复杂插件(1)--tabs
    ie调试工具
    javascript + jquery函数大全
  • 原文地址:https://www.cnblogs.com/huxiaoyun90/p/3022350.html
Copyright © 2011-2022 走看看