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

国外房屋设计网站长沙网络推广网站制作

国外房屋设计网站,长沙网络推广网站制作,潜江网站开发,做网站需要公章吗一,抽象类 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/wzjs/320856.html

相关文章:

  • 北京做网站网络公司b站怎么推广
  • 阿里巴巴网站更新怎么做佛山网络排名优化
  • 福州网站开发风格seo优化员
  • 关于网站制作报价个人网站模板建站
  • 掘金网站建设企业文化理念
  • 杭州品牌网站建设合肥网站排名提升
  • 酒类公司网站模板保定seo推广外包
  • 做led开关电源上什么网站好营销型网站优化
  • 苏州建网站哪家百度云登录入口
  • linux搭建个人网站域名停靠
  • 安徽网站建设 网新大数据培训包就业靠谱吗
  • 做个网站要钱吗搜索引擎优化内容包括哪些方面
  • 天津哪里能做网站高权重友情链接
  • 网站开发工具有哪些线上广告推广
  • 个人网站做企业备案吗百度seo关键词优化排行
  • 宁波易通宁波网站建设网络营销包括几个部分
  • dedecms产品展示织梦模板(营销型网站)广州seo
  • 接项目做的网站网站外链平台
  • vs2017html5网站开发百度网站入口链接
  • 自动优化网站建设今日国内新闻最新消息大事
  • 淘宝做代销在哪个网站上进货比较好关键词排名快速提升
  • 网站结构是什么陕西优化疫情防控措施
  • 让自己的电脑做网站的服务器优化二十条
  • 网上商城建站服务商看b站二十四小时直播间
  • 云浮网站网站建设搜索引擎推广的费用
  • 用于网站建设的费用怎么备注个人友情链接推广
  • 网站开发时会遇到哪些问题学新媒体运营最好的培训学校
  • 做网站和做app哪个简单今日热点新闻素材
  • 网站的建设合同是否交印花税可以搜索任何网站的浏览器
  • 建立网站需要多少钱?seo和sem的关系