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

广州网站优化服务商做俄罗斯外贸网站推广

广州网站优化服务商,做俄罗斯外贸网站推广,徐州市建设工程质监站网站,可信网站行业验证必须做吗一,抽象类 1.抽象类与继承 抽象类定义:使用 abstract关键字定义抽象类,抽象类中可以包含抽象属性和抽象方法。 抽象属性:未初始化的属性即为抽象属性,使用a1或va 定义。 抽象方法:声明但不实现的方法即为抽象方法,使用 det 定义…

一,抽象类

1.抽象类与继承

抽象类定义:使用 abstract关键字定义抽象类,抽象类中可以包含抽象属性和抽象方法。
抽象属性:未初始化的属性即为抽象属性,使用a1或va 定义。
抽象方法:声明但不实现的方法即为抽象方法,使用 det 定义。
继承与重写:子类必须实现父类的抽象属性和方法,否则子类也需声明为抽象类。重写非抽象方法需使用override 关键字,重写抽象方法则不需要。

子类对非抽象属性重写,父类非抽象属性只支持 val 类型,而不支持 var。

因为 var 修饰的为可变变量,子类继承之后就可以直接使用,没有必要重写

2.匿名子类与单例对象

匿名子类:通过重写代码块的形式创建匿名子类,不需要新的类名。


单例对象:使用obiect 关键字声明,模拟静态对象的行为。单例对象中的属性和方法可以通过类名或对象名直接调用。

若单例对象名与类名一致,则称该单例对象这个类的生对象,这个类的所有“静态”内容都可以放置在它的伴生对象中声明.

单例对象对应的类称之为伴生类,伴生对象的名称应该和伴生类名一致。

单例对象中的属性和方法都可以通过伴生对象名(类名)直接调用访问。

3.apply 方法:

1.通过伴生对象的 apply 方法可以实现不使用 new 关键字创建对象。

2.如果想让主构造器变成私有的,可以在()之前加上 private。

3.apply 方法可以重载。

4.Scala 中 obj(arg)的语句实际是在调用该对象的 apply 方法,即 obj.apply(arg)。用以统一面向对象编程和函数式编程的风格。

5.当使用 new 关键字构建对象时,调用的其实是类的构造方法,当直接使用类名构建对象时,调用的其实时伴生对象的 apply 方法。

注意:也可以创建其它类型对象,并不一定是伴生类对象

4.特质Trait

Scala 语言中,采用特质 trait(特征)来代替接口的概念,也就是说,多个类具有相同的特质(特征)时,就可以将这个特质(特征)独立出来,采用关键字 trait 声明。

特质定义:使用 trait关键字定义特质,特质可以包含抽象属性和方法,也可以包含具体属性和方法。


特质继承:类可以通过 extends。关键字继承特质,多个特质使用with 关键字连接。

特质可以同时拥有抽象方法和具体方法。


特质叠加:一个类可以混入多个特质,若有方法冲突,

第一种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 之间没有任何关系,解决这类冲突问题,直接在类(Sub)中重写冲突方法。

第二种,一个类(Sub)混入的两个 trait(TraitA,TraitB)中具有相同的具体方法,且两个 trait 继承自相同的 trait(TraitC),及所谓的“钻石问题”,解决这类冲突问题,Scala 采用了特质叠加的策略。

特质叠加的执行顺序与定义顺序相反。

特质自身类型:自身类型可实现依赖注入的功能.

特质与抽象类的区别;特质可以扩展多个,而抽象类只能扩展一个;抽象类可以定义带参数的构造函数,而特质不行。

二,扩展

类型检查和转换

枚举类和应用类

枚举类:需要继承 Enumeration

应用类:需要继承App

Type 定义新类型

使用 type 关键字可以定义新的数据数据类型名称,本质上就是类型的一个别名.

三,集 合

集合分类:集合主要分为序列(Seq)、集(Set)和映射(Map)三大类,所有的集合都扩展自 Iterable特质。

对于几乎所有的集合类,Scala 都同时提供了可变不可变的版本,分别位于以下两个包

Scala 不可变集合,就是指该集合对象不可修改,每次修改就会返回一个新对象, 而不会对原对象进行修改。类似于 java 中的 String 对象。

可变集合,就是这个集合可以直接对原对象进行修改,而不会返回新的对象。类似于 java 中 StringBuilder 对象。

建议:在操作集合的时候,不可变用符号,可变用方法

不可变集合继承图

Set、Map 是 Java 中也有的集合。

ndexedSeq 和LinearSeq 的区别:

​​​​​​​IndexedSeq 是通过索引来查找和定位,因此速度快,比如String 就是一个索引集合,通过索引即可定位。

​​​​​​​LinearSeq 是线型的,即有头尾的概念,这种数据结构一般是通过遍历来查找。

可变集合继承图

​​​​​​​数组

不可变数组

​​​​​​​可变数组

​​​​​​​不可变数组与可变数组的转换

http://www.dtcms.com/a/569384.html

相关文章:

  • 4.4 【2014统考真题】
  • 社交风格与销售培训讲师培训师唐兴通谈社交销售大客户营销DISC销售大五人格MBTI销售方法论实践
  • 【SSL】什么是自签名证书及使用Java生成SSL自签名证书
  • 从繁琐到高效:文档抽取技术驱动医疗健康行业的数字化转型
  • 做网站 阿里云河南推广网站
  • 在VSCode+Guider基础上:拖动滑条控件,显示滑条数值
  • 斯坦福大学 | CS336 | 从零开始构建语言模型 | Spring 2025 | 笔记 | Lecture 7: Parallelism 1
  • cookie、session、token、JWT(JSON Web Token)
  • 免费学平面设计的网站如何开设一个网站
  • WebGIS开发智慧校园(14)地图控件的添加
  • Agent Demo初体验
  • Cursor 项目实战:AI播客策划助手开发指南(一)——需求分析与功能原型
  • 当AI遇上Python:重新定义编程学习的《AIGC高效编程:Python从入门到高手》
  • 成都上界品牌设计事务所小红书搜索优化
  • Apache Calcite查询规划
  • Linux网络——传输层协议UDPTCP
  • useState 真的那么简单吗?我在项目里踩过的坑
  • 如何用5种实用方法将电脑上的音乐传输到安卓手机
  • 做网页到哪个网站找素材物流网站有哪些
  • MP4视频播放问题
  • HR8837:赋能低压直流电机的高效安全驱动芯片
  • Linux源码安装FFmpeg和av库
  • 亳州市城乡建设局网站ps设计网站首页效果图
  • Syncthing Linux 部署教程
  • 做疏通什么网站推广好网页制作软件 ad
  • html 和css基础常用的标签和样式(2)-css
  • 【数据集】【YOLO】【目标检测】共享单车数据集,共享单车识别数据集 3596 张,YOLO自行车识别算法实战训推教程。
  • Coze-AI智能体开发平台5-Coze的API与SDK
  • 河南网站建设优化技术网站建设与维护学什么科目
  • 超越简单的回放:深度解析国标GB28181算法算力平台EasyGBS的录像检索与回放技术