文章目录

  • 1、Scala语言特点
  • 2、伴生对象

1、Scala语言特点

​ Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如: Java、c、cll等,动态语言如: js)。

1)Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)

  1. Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。

3)Scala单作为一门语言来看,非常的简洁高效。

  1. Scala在设计时,马丁·奥德斯基是参考了Java的设计思想,可以说Scala是源于Java,同时马丁·奥德斯基也加入了自己的思想,将函数式编程语言的特点融合到TAVA中,因此,对于学习过Java的同学,只要在学习Scala的过程中,搞清楚Scala和Java相同点和不同点,就可以快速的掌握Scala这门语言。

2、伴生对象

1)从字面意思来讲,伴生对象就是伴随类产生的对象
①在scala中,没有static关键字,通过伴生对象模拟static关键字的实现
②当通过object名称定义一个伴生对象的时候,默认底层会编译生成两个字节码文件,一个是伴生类,
另一个是伴生对象所属类。实际我们所说的伴生对象是伴生对象所属类中定义的一个单例对象,然后
通过对象 .的方式访问属性或者方法等

2)以后在scala程序中,如果要想实现static效果,那么我们应该将属性以及方法定义在伴生对象中

Scala学习视频心得(一)语言特点、伴生对象相关推荐

  1. Scala学习--《Scala编程》

    2019独角兽企业重金招聘Python工程师标准>>> Scala学习手册--可伸缩的语言(随着使用者的需求而成长)  第一章:基本概念 Scala=FP+OO.静态语言 兼容性.简 ...

  2. Scala学习—模式匹配

    scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配.对Array和LIst的元素进行匹配.对case class进行匹配.甚至对有值或没值(Option)进行匹配. scala是没有j ...

  3. *:学习心得——C语言----S1T62班 王作舟

    *:学习心得--C语言----S1T62班 王作舟 来源:[url]http://www.accp-teem.com.cn/ArticleView/2007-7-14/Article_View_118 ...

  4. Scala学习教程笔记二之函数式编程、Object对象、伴生对象、继承、Trait、

    1:Scala之函数式编程学习笔记: 1:Scala函数式编程学习:1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法:class User {private v ...

  5. 20165334 学习基础与c语言学习心得

    学习基础和c语言学习心得 一.技能学习   我觉得在男生中,我做饭应该算不错的.我是小学四年级开始学做饭,从刚开始的学煮饭,到后来的蒸馒头,到最后的炒家常菜真的很有成就感.首先,我觉得做任何事情兴趣很 ...

  6. 系统自学Java语言(学习视频整理)

    以下分享的视频教程 99% 来源于B站(哔哩哔哩),其余来自于慕课网,希望这些视频能帮助你系统全面地自学 Java 语言. 目录 一.Java基础 二.数据结构与算法 三.图解Java设计模式 四.J ...

  7. Scala学习笔记(黑马视频)

    目录 2.Scala第二章节 2.1 输出语句和分号 2.1.1 输出语句 2.1.2 分号 2.2 Scala中的常量 2.2.1 概述 2.2.2 分类 2.2.3 代码演示 2.3. Scala ...

  8. Scala学习笔记(三)——面向对象、类、抽象类、伴生、内部类、样例类、枚举、泛型类、类型边界、型变、特质、动态混入、包

    Scala面向对象 Scala面向对象 一.基本概念 1.类的概念 2.类成员访问修饰符 二.类 1.类的定义 2.类的继承 3.抽象类 4.单例对象 5.伴生 6.内部类 7.样例类 8.枚举 9. ...

  9. 大数据开发语言Scala(三)——伴生类和伴生对象

    Scala语言是完全面向对象的语言,所以并没有静态的操作(即在Scala中没有静态的概念).但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,该对象为单例 ...

最新文章

  1. 编程语言性能实测,Go比Python更胜一筹?
  2. Mongo基础使用,以及在Express项目中使用Mongoose
  3. 持续集成之“依赖管理”
  4. 记一次ORM的权衡和取舍
  5. 由浅到深理解ROS(1)
  6. Hbase2修复 - HBCK2
  7. 【Contact】结构体+动态内存管理+文件存储实现简易通讯录代码
  8. 设置UITableView的separatorInset值为UIEdgeInsetsZero,分隔线不最左端显示的问题
  9. windows安装多个maven_全网最容易理解的Maven安装、配置、集成演示
  10. 机器学习代码实战——决策树(预测泰坦尼号船员生存情况)
  11. 2015年Java开发岗位面试题归类
  12. C语言-第19课 - #pragma预处理分析
  13. IEEE Transactions on Systems, Man, and Cybernetics: Systems(TSMC)投稿须知
  14. mysql反思范文_MySQL学习笔记(一)
  15. MySQL插入emoji表情错误的3种解决方案,Incorrect string value: '\xF0\x9F\x98\x84'
  16. 前女友让我撸个植物大战僵尸,我一怒之下把代码开源了...
  17. 电脑丢失的dll文件怎么一键修复?修复dll方法分享
  18. 将list对象存储进redis中去
  19. 暗黑破坏神 用什么 开发的_软件开发中最具破坏性的五种态度
  20. Plants vs. Zombies(二分)

热门文章

  1. 阿里面试:“说一下从 url 输入到返回请求的过程”
  2. 永恒之蓝 MS17-010漏洞复现
  3. 杂项:Unity3D
  4. PHP7底层设计与源码剖析PDF,【PHP7底层设计与源码分析】部分勘误
  5. 算法题:1到4位编码推下标
  6. excel如何打开100万行以上的csv文件
  7. unixprocess+java+186_interproscan 的使用和遇到的问题
  8. oracle修改日历,oracle 日历
  9. 大数据与智慧城市建设论坛
  10. 我换Minecraft启动器啦!