scala之类的嵌套、内部类

scala之类的嵌套、内部类、外部类

scala中也支持嵌套类,Java中也是支持内部类的 .

1 通过外部类创建内部类的对象实例

小试牛刀代码如下。

package com.shufang.inner_class

import com.shufang

class InnerClassDemo {

  //普通成员内部类
  class InnerClass {}

}

object InnerClassDemo {

  //静态内部类
  class InnerStaticClass {}

  def main(args: Array[String]): Unit = {

    //创建对象实例
    val i1 = new InnerClassDemo()
    //通过实例调用成员内部类(创建实例)
    val ii = new i1.InnerClass()

    println(ii)

    //通过创建InnerClassDemo的类对象,创建静态内部类实例
    val clazz: InnerStaticClass = new shufang.inner_class.InnerClassDemo.InnerStaticClass

    println(clazz)
  }
}

2 内部类调用外部类

除了可以使用外部类创建对应的内部类的实例对象,我们也可以在内部类中调用外部类的属性、方法等成员。

2.1 方式1 外部类.this.defName/attrName 调用

class A{
  
  // 别名
  a => 
var name:String = "jack"
  def say(){
  println("hello me")
}
  
  
	class InA{
  
    A.this.say()
    A.this.name.sout
      
  }
}

2.2 方式2 外部类别名 a => a.say() / a.name

class A{
  
  // 别名
  a => 
var name:String = "jack"
  def say(){
  println("hello me")
}
  
  
	class InA{
  a.say()
  a.name.sout
      
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值