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

13_Scala面向对象编程_伴生对象

文章目录

  • 1.伴生对象
    • 1.1 scala的一个性质,scala文件中的类都是公共的;
    • 1.2 scala使用object关键字也可以声明对象;
  • 3.关于伴生对象和类
  • 4.权限修饰符,scala仅有private;
  • 5.伴生对象可以访问伴生类中的私有属性;
  • 6.案例
  • 7.伴生对象调用
  • 小结

1.伴生对象

概念:存在一个类,存在一个对象,类和对象相互存在,互为伴生的关系。

Scala中**同一个文件中;**名称相同的类和对象他俩就互为伴生;

作用:完善对象和类相辅相成的作用;

定义:object修饰的类;

1.1 scala的一个性质,scala文件中的类都是公共的;

Java仅允许一个public 类存在;

scala源码中所有的声明的类都可以public

1.2 scala使用object关键字也可以声明对象;

class Teacher(val name:String,val age:Int){}object Teacher{}

//Java中一个类既要有自己的属性值,也要有自己的工具类等;

在这里插入图片描述

3.关于伴生对象和类

类中放入属性值;对象放入工具类,常量;

4.权限修饰符,scala仅有private;

private val name;		//仅自己可以用

5.伴生对象可以访问伴生类中的私有属性;

在这里插入图片描述

6.案例

在这里插入图片描述

对象中定义的方法和常量可以直接加载,当实例化对象的时候;

一般将静态方法属性声明在object中,成员方法和属性声明在class类中;

IDEA动态变化

在这里插入图片描述

7.伴生对象调用

//Scala独有方式      object伴生对象,且对象中存在apply方法即可使用      繁琐
val user1 = User.apply() //如果

在这里插入图片描述

目前我的编译器已经无法动态识别apply()
不建议使用

在这里插入图片描述

在这里插入图片描述

最终结果:

在这里插入图片描述

小结

1.伴生对象指的是类和对象的一种相辅相成;
2.将方法(静态),常量放入伴生对象中,每当该实例进行创建,伴生对象中的内容自动进行加载,类可以直接调用和使用;
3.伴生对象一定在同一个文件下,且名字相同;
4.私有属性的定义 private var xxx
5.伴生对象可以直接访问类的私有属性;
6.将静态方法属性声明在object中,成员方法和属性声明在class类中;
http://www.lryc.cn/news/344011.html

相关文章:

  • RS485空调系统到BACnet江森楼宇系统的高效整合攻略
  • Springboot集成Redis操作缓存-06
  • 【WPF】聊聊WPF中INotifyPropertyChanged [TOC]
  • SpringBoot Actuator未授权访问漏洞的解决方法
  • AI大模型探索之路-训练篇18:大语言模型预训练-微调技术之Prompt Tuning
  • Ollamallama
  • 苹果Mac用户下载VS Code(Universal、Intel Chip、Apple Silicon)哪个版本?
  • Linux(Ubuntu)安装CGAL(非root)
  • hadoop学习---基于Hive的教育平台数据仓库分析案例(三)
  • RAFT:引领 Llama 在 RAG 中发展
  • 上海亚商投顾:沪指缩量调整 合成生物概念股持续爆发
  • Maven+Junit5 + Allure +Jenkins 搭建 UI 自动化测试实战
  • docker学习笔记(三)搭建NFS服务实验
  • super关键字
  • 【经典算法】LeetCode 200. 岛屿数量(Java/C/Python3/Go实现含注释说明,中等)
  • Hive SQL-DQL-Select查询语句用法详解
  • 沙盘Sandboxie v5.56.4
  • Arcpy开发记录
  • Android使用itextpdf操作PDF文档
  • llama_index微调BGE模型
  • 什么是限流?常见的限流算法
  • ZL-0895小动物活动记录仪可同时检测8只动物的活动量
  • 注册测绘师的前世今生
  • Python中的异常处理:深入探索try-except-finally结构
  • 【R语言】边缘概率密度图
  • 中国结(科普)
  • 使用Android Studio 搭建AOSP FrameWork 源码阅读开发环境
  • 区块链 | IPFS:CID
  • PostgreSQL(十二)报错:Tried to send an out-of-range integer as a 2-byte value: 51000
  • Linux守护进程