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.mzph.cn/bicheng/6622.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

世界十大最具影响力人物颜廷利:真正的高人,靠谱的行为

对于真正的‘高人’, 在面对‘狗洞’时, 他们都比较理智, 从来都不趾高气扬, 因为他们晓得, 倘若说不能弯下腰, 并而直立着身子走路的话, 那么, 他们就不是纯粹的‘高人’&#xff0…

1850H-The Third Letter

题目链接:The Third Letter 本道题目就是带权并查集的模板题,但又好久没学忘了,再复习一遍。。。 路径压缩函数模板: int root(int x){if(pre[x]!x){int troot(pre[x]);d[x]d[pre[x]];pre[x]t;}return pre[x]; } 之后就模拟一…

c++ 红黑树学习及简单实现

1. 了解红黑树 1.1. 概念 红黑树,是一种二叉搜索树,但在每个节点增加一个存储位表示节点的颜色,可以是红色,或是黑色,通过对任何一条从根到叶子的路径上各个节点的着色方式进行限制,红黑树确保没有一条路…

初识webpack项目

新建一个空的工程 -> % mkdir webpack-project 为了方便追踪执行每一个命令,最终产生了哪些变更,将这个空工程初始化成git项目 -> % cd webpack-project/-> % git init Initialized empty Git repository in /Users/lixiang/frontworkspace/…

AI文章框架分析

大家在文章写作的时候结构难免会有点凌乱,但是自己可能无法发现问题所在,那么有没有一款工具可以帮你自动分析你写的文章框架存在的问题,然后并给你详细的分析报告呢?今天给大家介绍一下文件框架分析助手! 使用说明 打…

如何配置X86应用程序启用大地址模式(将用户态虚拟内存从2GB扩充到3GB),以解决用户态虚拟内存不够用问题?(项目实战案例解析)

目录 1、概述 2、为什么不直接将程序做成64位的? 3、进程内存不足导致程序发生闪退的案例分析 3.1、问题说明 3.2、将Windbg附加到程序进程上进行动态调试 3.3、动态调试的Windbg感知到了中断,中断在DebugBreak函数调用上 3.4、malloc或new失败的…

IoTDB 入门教程 问题篇②——RPC远程连接IoTDB服务器失败

文章目录 一、前文二、发现问题三、分析问题四、检查6667端口是否监听所有IP五、检查ECS云服务器的安全组是否允许六、检查Linux防火墙是否允许 一、前文 IoTDB入门教程——导读 二、发现问题 使用本地IP127.0.0.1可以连接IoTDB服务器使用远程IPxx.xx.xx.xx却连接不到。提示你…

C++中的reverse_iterator迭代器结构设计

目录 reverse_iterator迭代器结构设计 reverse_iterator迭代器基本结构设计 operator*()函数 operator()函数 operator->()函数 operator!()函数 rbegin()函数 rend()函数 operator--()函数 operator()函数 测试代码 const_reverse_iterator迭代器设计 reverse…

【蓝桥2025备赛】容斥原理

容斥原理 背景:两个集合相交 高中的韦恩图,我们知道两个集合相交时我们可以通过简单的计算来认识相关的性质 集合相交的区域是 A ∩ B A\cap B A∩B ,集合的并集是 A ∪ B A\cup B A∪B ,那怎么用集合表示 A ∪ B A\cup B A∪B 我们可以看作是A集合…

分布式与一致性协议之ZAB协议(一)

ZAB协议 概述 很多人应该都使用过ZooKeeper, 它是一个开源的分布式协调服务,比如你可以用它进行配置管理、名字服务等。在ZooKeeper中,数据是以节点的形式存储的。如果你要用ZooKeeper做配置管理,那么就需要在里面创建指定配置&…

2024.5.5 机器学习周报

目录 引言 Abstract 文献阅读 1、题目 2、引言 3、创新点 4、匹配问题 5、SuperGlue架构 5.1、注意力图神经网络(Attentional Graph Neural Network) 5.2、最佳匹配层(Optimal matching layer) 5.3、损失 6、实验 6.…

模型剪枝——Linear Combination Approximation of Feature for Channel Pruning

线性逼近剪枝代码实现见文末 论文地址:CVPR 2022 Open Access Repositoryhttps://openaccess.thecvf.com/content/CVPR2022W/ECV/html/Joo_Linear_Combination_Approximation_of_Feature_for_Channel_Pruning_CVPRW_2022_paper.html 1.概述 传统的剪枝技术主要集中在去除对…

4.【Orangepi Zero2】Linux定时器(signal、setitimer),软件PWM驱动舵机(SG90)

Linux定时器(signal、setitimer),软件PWM驱动舵机(SG90) signalsetitimer示例 软件PWM驱动舵机(SG90) signal 详情请看Linux 3.进程间通信(shmget shmat shmdt shmctl 共享内存、si…

经纬度聚类:聚类算法比较

需求: 将经纬度数据,根据经纬度进行聚类 初始数据 data.csv K均值聚类 简介 K均值(K-means)聚类是一种常用的无监督学习算法,用于将数据集中的样本分成K个不同的簇(cluster)。其基本思想是…

支付宝支付流程

第一步前端:点击去结算,前端将商品的信息传递给后端,后端返回一个商品的订单号给到前端,前端将商品的订单号进行存储。 对应的前端代码:然后再跳转到支付页面 // 第一步 点击去结算 然后生成一个订单号 // 将选中的商…

Django之单文件上传(以图片为例)

一,创建项目 初始化,数据迁移,创建superuser,创建app等 二,配置settings.py 1,配置数据库(本作者使用的mysql),以前文章有提到 2,配置静态文件存放路径 STAT…

2-手工sql注入(进阶篇) sqlilabs靶场5-10题

1. 阅读,学习本章前,可以先去看看基础篇:1-手工sql注入(基础篇)-CSDN博客 2. 本章通过对sqlilabs靶场的实战,关于sqlilabs靶场的搭建:Linux搭建靶场-CSDN博客 3. 本章会使用到sqlmap,关于sqlmap的命令&…

Vitis HLS 学习笔记--HLS流水线基本用法

目录 1. 简介 2. 示例 2.1 对内层循环打拍 2.2 对外层循环打拍 2.3 优化数组访问后打拍 3. 总结 1. 简介 本文介绍pipeline的基本用法。pipeline是一种用于提高硬件设计性能的技术。本文介绍了pipeline在累加计算函数中的应用。通过优化内外层循环和数组访问&#xff0c…

C++初学者,使用汉语编程

现在的IDE是完全支持中文编程的,对于C语系的爱好者来说,又可以发挥自己的想象力了。 今天使用一些宏定义写了一个小程序,用于玩弄C.

合合信息embedding模型登顶MTEB中文榜单:中文文本向量化技术的创新突破

引言MTEB中文榜单:权威性与挑战并存Embedding:特征与优势凸显模型应用:开启文本智能新篇章升级迭代:攻克行业技术难点结尾 引言 在信息化时代,文本数据呈爆炸式增长,如何高效、准确地处理和分析这些文本数…