• J2SE 内部类 [Inner]


    Outer.java

    代码:

    /**
     * 内部类:
     *  内部类与其所在的外层来之间存在着逻辑上的依赖关系--内部类的对象布恩给你单独存在,他必须依赖一个其外层类的对象
     *
     *  如:Outer outer=new Outer();
     *     Inner inner=outer.new Inner();
     *
     *  在内部类中可以之间访问其外层类中的成语,包括属性和方法,即使这些属性和方法是private的;
     *
     *  内部类可以声明为抽象类,因此可以被其他的内部类继承,也可以申明为final的;
     *  
     *  和外层类不同,内部类可以声明为private,public,protected
     *
     *  内部类中出现变量命名冲突时,可以使用内部类对象的特殊属性    "<外层类名>.this" 来访问其所依赖外层类对象的成员
     *
     *
     */
    package com.b510.examples;

    /**
     * @author Hongten
     *
     * @time 2011-8-10 2011
     */
    public class Outer {

     private int number;

     /**
      * 经过编译会生成: Outer$Inner.class的class文件
      *
      * @author Hongten
      *
      * @time 2011-8-10 2011
      */
     public class Inner {
      private int number;

      public void displayInner() {
       System.out.println("内部类Inner中的number :" + this.getNumber());
      }

      public int getNumber() {
       return number;
      }

      public void setNumber(int number) {
       this.number = number;
      }

     }

     public void displayOuter(Inner inner) {
      inner.displayInner();
      System.out.println("外部类Outer中的number : " + this.getNumber());
     }

     public int getNumber() {
      return number;
     }

     public void setNumber(int number) {
      this.number = number;
     }

    }

    *************************Hongten******************************

    测试类:

    TestInner.java

    代码:

    /**
     *
     */
    package com.b510.examples.action;

    import com.b510.examples.Outer;
    import com.b510.examples.Outer.Inner;

    /**
     * @author Hongten
     *
     * @time 2011-8-10 2011
     */
    public class TestInner {
     public static void main(String[] args) {
      Outer outer = new Outer();

      //直接使用内部类,用法是先实例一个该内部类的外部类,用外部类的实例来new该内部类
      Inner inner = outer.new Inner();
      inner.setNumber(30);

      outer.setNumber(25);
      outer.displayOuter(inner);

     }

    }

    *************************Hongten******************************

    运行效果:

    内部类Inner中的number :30
    外部类Outer中的number : 25

    *************************Hongten******************************


     

  • 相关阅读:
    再来五道剑指offer题目
    高强度学习训练第十天总结:Class文件
    windows linux 子系统及windows terminal的使用。
    从植物大战僵尸开始一步一步带你入门逆向工程,
    高强度学习训练第九天总结:5道剑指offer的题目
    高强度学习训练第八天总结:MySQL的一些优化
    JVM的一些工具的简要使用
    手把手教你使用Java实现一个神经网络
    指定路径创建文件,并写入数据
    c#创建windows服务(代码方式安装、启动、停止、卸载服务)
  • 原文地址:https://www.cnblogs.com/hongten/p/2134021.html
Copyright © 2020-2023  润新知