当前位置: 首页 > news >正文

Kotlin 嵌套类和内部类

在Kotlin中,嵌套类(Nested Class)和内部类(Inner Class)是两种不同的类,它们在定义和使用上有一些区别。

1.嵌套类(Nested Classes)默认是静态的(即等同于Java中的static),可以有修饰符(如private、protected),不持有外部类的引用,不能访问外部类的成员。
2.内部类(Inner Classes)持有外部类的引用,可以访问外部类的私有成员

使用区别:嵌套类则更多地用于创建独立的、不需要访问外部类成员的类,而内部类经常用于定义在某个类的作用域内,只为外部类服务的类。

代码举例:

class Outer{class MyNested{//嵌套类fun printMessage(){println("这是一个嵌套类")
//        println("外部类属性:${this@Outer.name}")//报错,嵌套类不持有外部类的引用,不能访问外部类成员}}var name = "外部类"
}class Outer2{inner class MyInner{//内部类  用inner修饰类fun printMessage(){println("这是一个内部类")println("外部类属性:${this@Outer2.name}")  //不报错,内部类可以访问外部类成员}}var name="外部类"
}fun main() {//嵌套类val nested = Outer.MyNested()nested.printMessage()//内部类val inner = Outer2().MyInner()inner.printMessage()}
http://www.lryc.cn/news/545477.html

相关文章:

  • 蓝蝶(BlueStacks)模拟器Root、Magisk、LSPosed及Shamiko框架安装与过应用检测指南
  • OpenCV计算摄影学(6)高动态范围成像(HDR imaging)
  • [ComfyUI][AI生图]如何在Comfyui中安装插件管理器
  • 初探Ollama与deepseek
  • Linux top 常用参数记录
  • CCF-CSP认证 202104-1灰度直方图
  • 怎么下载安装yarn
  • Vulhub靶机 AppWeb认证绕过漏洞(CVE-2018-8715)(渗透测试详解)
  • CSS 系列之:grid 布局
  • DeepSeek MLA(Multi-Head Latent Attention)算法浅析
  • 【计算机网络入门】初学计算机网络(七)
  • Conda 环境搭建实战:从基础到进阶
  • 大数据-236 离线数仓 - 会员活跃度 WDS 与 ADS 导出到 MySQL 与 广告业务 需求分析
  • fps项目总结:关于攻击与受击
  • coze生成的工作流,发布后,利用cmd命令行执行。可以定时发日报,周报等。让他总结你飞书里面的表格。都可以
  • Windows 10 远程桌面连接使用指南
  • Difyにboto3を変更したカスタムDockerイメージの構築手順
  • C++性能优化常用技巧
  • IntelliJ IDEA集成MarsCode AI
  • 数据挖掘工程师的技术图谱和学习路径
  • Excel基础(详细篇):总结易忽视的知识点,有用的细节操作
  • 基因枷锁下的太空梦 —— 千钧一发电影观后感
  • leetcode第40题组合总和Ⅱ
  • 迷你世界脚本状态接口:Buff
  • Java中Stream流的详细使用介绍
  • 【重构小程序】升级JDK1.8、SpringBoot2.x 到JDK17、Springboot 3.x(一)
  • 功能丰富的自动化任务软件zTasker_2.1.0_绿色版_屏蔽强制更新闪退
  • _ 为什么在python中可以当变量名
  • Java 9 到 Java 21 新特性全解析:从语法简化到API增强
  • LeeCode题库第三十九题