• java静态与非静态区别


    这里的静态,指以static关键字修饰的,包括类,方法,块,字段。

    非静态,指没有用static 修饰的。

    静态有一些特点:

    1.全局唯一,任何一次的修改都是全局性的影响

    2.只加载一次,优先于非静态

    3.使用方式上不依赖于实例对象。

    4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束。

    可参考 :http://blog.csdn.net/zhandoushi1982/article/details/8453522/。

    关于静态内部类(嵌套类)和非静态内部类的区别,可参考:

    http://www.jb51.net/article/74838.htm

    (1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。

    (2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。

    (3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。

    /* 下面程序演示如何在java中创建静态内部类和非静态内部类 */
    class OuterClass{
      private static String msg = "GeeksForGeeks";
      // 静态内部类
      public static class NestedStaticClass{
        // 静态内部类只能访问外部类的静态成员
        public void printMessage() {
         // 试着将msg改成非静态的,这将导致编译错误 
         System.out.println("Message from nested static class: " + msg); 
        }
      }
      // 非静态内部类
      public class InnerClass{
        // 不管是静态方法还是非静态方法都可以在非静态内部类中访问
        public void display(){
         System.out.println("Message from non-static nested class: "+ msg);
        }
      }
    } 
    class Main
    {
      // 怎么创建静态内部类和非静态内部类的实例
      public static void main(String args[]){
        // 创建静态内部类的实例
        OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();
        // 创建静态内部类的非静态方法
        printer.printMessage();  
        // 为了创建非静态内部类,我们需要外部类的实例
        OuterClass outer = new OuterClass();    
        OuterClass.InnerClass inner = outer.new InnerClass();
        // 调用非静态内部类的非静态方法
        inner.display();
        // 我们也可以结合以上步骤,一步创建的内部类实例
        OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();
        // 同样我们现在可以调用内部类方法
        innerObject.display();
      }
    }
  • 相关阅读:
    python命令行参数处理
    linux进程管理
    hadoop
    linux进程间通信之信号
    HA for openstack
    ubutun 安装php7.1x
    php 函数小技巧(一)
    git error: RPC failed; result=56, HTTP code = 200
    php面试题汇总四(基础篇附答案)
    php面试题汇总三(基础篇附答案)
  • 原文地址:https://www.cnblogs.com/itdev/p/5665531.html
Copyright © 2020-2023  润新知