zoukankan      html  css  js  c++  java
  • 2017.12.13T19_B2_6.4内部类

    package com.xdf.demo;

    /**
     * 匿名内部类
     */
    public interface Animal {

     /**
      * 所有动物吃饭的方法
      */
     void eat();
    }***************************************

    package com.xdf.demo;

    /**
     *  外部类 必须是 public 修饰,不能更改 访问权限修饰符
     *  内部类可以设置 访问权限修饰符
     * 
     *  如果我们把Son单独提取成一个类
     *  这样任何地方都可以访问Son!
     *  现在把Son变成了内部类!
     *  别人必须想访问Father,才能拿到Son
     * 
     */
    public class Father { // 外部类
     /**
      * 外部类的成员变量
      */
     private static int age = 50;
     private String name = "小白";

     /**
      * 定义成员内部类
      */
     class Son { // begin Son
      int age = 100;
      String name = "小黑";

      /**
       * 内部类的方法
       */
      public void sayHello() {
       System.out.println("Son   成员内部类 打招呼的方法!");
       System.out.println("内部类age==>" + age);
       System.out.println("内部类name==>" + name);
       System.out.println("======获取外部类的属性=======");
       System.out.println("外部类age==>" + Father.this.age);
       System.out.println("外部类name==>" + Father.this.name);
      }
     } // end Son

     /**
      * 外部类的方法
      */
     public void getSon() {
      class Son { // 局部内部类 仅限于 getSon()方法
       public void sayHello() {
        System.out.println("Son  局部内部类 打招呼的方法!");
       }
      }
      Son son = new Son();
      son.sayHello();
     }

     /**
      * 静态内部类
      */
     static class Son2 {
      public void sayHello() {
       System.out.println("Son2  静态内部类 打招呼的方法!" + age);

    **********************************************************

    package com.xdf.demo;

    import com.xdf.demo.Father.Son;
    import com.xdf.demo.Father.Son2;

    public class InnerClassDemo {

     public static void main(String[] args) {
      /**
       * 使用成员内部类
       * 01.实例化外部类对象
       * 02.通过外部类对象创建内部类对象
       * 03.调用内部类的属性和方法
       */
      Father father = new Father();
      Son son = father.new Son();
      son.sayHello();

      // 访问局部内部类
      father.getSon();

      // 访问静态内部类
      Son2 son2 = new Son2();
      son2.sayHello();

      // 访问匿名内部类
      Demo demo = new InnerClassDemo().new Demo();
      demo.animalEat("大大的");

     }

     class Demo { // 成员内部类

      public void animalEat(final String name) {
       // 实例化一个动物 匿名内部类
       Animal dog = new Animal() {
        @Override
        public void eat() {
         System.out.println(name + "小狗在啃骨头!!");
        }
       };
       dog.eat();

      }

  • 相关阅读:
    最全的“大数据”学习资源
    民生银行十五年的数据体系建设,深入解读阿拉丁大数据生态圈、人人BI 是如何养成的?【转】
    大数据分析界的“神兽”Apache Kylin有多牛?【转】
    大数据环境下互联网行业数据仓库/数据平台的架构之漫谈-续【转】
    写给大数据开发初学者的话5[转]
    唯品会海量实时OLAP分析技术升级之路
    大数据学习笔记
    元数据
    数据仓库之数据模型
    官方教程:Apache Kylin和Superset集成,使用开源组件,完美打造OLAP系统
  • 原文地址:https://www.cnblogs.com/xiaoxiao1016/p/8032051.html
Copyright © 2011-2022 走看看