zoukankan      html  css  js  c++  java
  • 内部类

    内部类

    package base
    
    // App重写了main方法 可以直接运行IClass
    object IClass extends App {
    
      //调用外部类中的内部类对象
      val ic1 = new OuterClass().InnerObject
      println("y = " + ic1.y)
    
      // 创建外部类实例
      val oc = new OuterClass()
      // 通过外部类实例创建内部类实例
      val ic2 = new oc.InnerClass()
      println("x = " + ic2.x)
    
      // 通过方法获取内部类实例
      val ic3 = new OuterClass().getInnerClass
      println("x = " + ic3.x)
    
      // 通过外部类对象创建内部类实例
      val oic = new OuterObject.InnerClass()
      println("m = " + oic.m)
    
      // 通过外部类对象调用内部类对象
      println("n = " + OuterObject.InnerObject.n)
    
    }
    
    // 外部类
    class OuterClass {
    
      // 封装返回InnerClass的实例方法
      def getInnerClass: InnerClass = {
        new InnerClass()
      }
    
      // 内部类
      class InnerClass {
        var x = 1
      }
    
      // object 里面的字段都类似于被 static修饰了
      object InnerObject {
        val y = 2
      }
    
    }
    
    // 外部对象
    object OuterObject {
    
      // 内部类
      class InnerClass {
        var m = 3
      }
    
      // 内部对象
      object InnerObject {
        var n = 4
      }
    
    }
    

    匿名内部类

    package base
    
    object RunC {
      def main(args: Array[String]): Unit = {
    
        // 匿名内部类, 直接实现抽象方法
        val abs = new AbsC {
          override def fun(): String = {
            "Abs class fun!"
          }
        }
        println(abs.fun())
    
      }
    }
    
    // 抽象类
    abstract class AbsC {
      // 抽象方法
      def fun():String
    }
    
  • 相关阅读:
    Codeforces Round #417 C. Sagheer and Nubian Market
    linux 终端抓包命令
    计算机网络体系结构分析
    排序算法-快速排序
    排序算法-堆排序
    排序算法-希尔排序
    排序算法-插入排序
    排序算法-冒泡排序
    排序算法-选择排序
    杂谈:终端小工具
  • 原文地址:https://www.cnblogs.com/studyNotesSL/p/11443815.html
Copyright © 2011-2022 走看看