Scala知识点整理

scala是一门多范式编程语言(面向对象,函数式编程)

1,scala中定义一个类不用提供对外的set,get方法。

2,伴生对象:一定是object+类名。且在同一文件中。特点:可以访问类中被private修饰的属性和方法。private[this],  加上this后,伴生对象也不能使用。

3,类的私有private属性可以在类内部或者伴生对象中使用。

4,伴生对象的作用:(它是静态的)在object中定义的属性,相当与static的。

5,有包访问权限的概念。

6,scala的构造器(创建实例时赋值)

     1,主构造器:跟类名交织在一起,会成为这个类的成员变量。

      2,辅助构造器:是对主构造器的扩展。

          def this  第一行必须先调用主构造器。辅助构造器不用var,val修饰。

      3,不加修饰符的变量,不会成为成员变量,只能在类的内部使用,被继承时,并不会被继承。

            私有构造器,只能在伴生对象中new

            主构造器的方法不会被执行。

对象

1,scala中的对象与实例不同。对象指的是object。(定义的都是静态的,单例的)。实例指的是new出来的。

2,object名字后面跟括号,括号中有参数,执行时会找参数类型,个数一样的apply方法。

继承

1,ctrl+i:实现未实现的方法。

   子类要实现父类中的抽象方法,可以加override也可以不加。

2,ctrl+o:重写

    子类要实现一个非抽象的方法,必须加override关键字。

3,接口用with,继承多个接口时第一个用extends后面的用with。

     继承相当与一个人只能有一个父亲,接口相当与这个人可以有多个老师。

4,可以动态的实现特质。new +类名 +with+接口名

模式匹配

1,模式匹配匹配字符串内容。

2,根据类型进行模式匹配。case中也可以进行判断。

样例类

case   样例类(可以封装数据)    多例的

          样例对象(不封装数据)     单例的

主要功能:进行模式匹配,还可以封装数据,速度快,不用new即可创建实例。

柯里化方法

1,两种定义方法       def   m1 (x:Int)(y:Int) = x+y

                                  def   m2 (x:Int)=(y:Int) = x+y

隐式转换


1,implicit 参数的隐式转换

       如果剩余参数有implicit修饰的参数,在执行时,会到上下文中查找跟implicit修饰类型一致的参数,如果找到了,就将该参数传入,如果没有找到,使用默认的。

    方法的隐式转换

      scala提供了隐式转换功能,程序在编译时,会到程序运行环境中找。有没有将file转换成另外一种类型,如果转换成另外的类型中有read,那么就用该read方法。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值