Scala面向对象续及集合(3)

1.object

(1)不用new就能直接调用

如上图的diao调用,没用new,类名.方法名,就可以直接调用了。

(2)类似于静态类

如上图打印三次的结果是1  2  3,而不是三个1,因为打印一次他的值就变了。

2.object和class

(1)若俩者同名,在同一包中object中则称为伴生

(2)object是class的伴生对象,class是object的伴生类

(3)在这个方法中底层就new了Applyapp class

这样的做的好处是如下图,你在调用不用new了

(4)他俩都可以定义同名的一个方法,但是调用的时候就是各自调用各自的

Object() ==> Object里面的apply
 val a = new ClassA()  a() ==> 有定义一个参数等于一个对象啥的就是调用class里面的apply方法

3.定长数组

(1)学习一个集合掌握三个重点:

如何创建

如何赋值

如何取值

(2)基本的数组定义和取值

赋值也包括了修改

(3)c.mkString的三种方法

合成一个新的字符串,这个新的字符串有三种方式设置分隔。

三个参数那个:第一个拼接字符串左边的值。第二个分隔符号,第三个拼接字符串右边的值。

4.变长数组

(1)定义变长数组需要导入包import scala.colleection,mutable.ArrayBuffer

(2)val c = ArrayBuffer[Int]()

(3)c+=1:表示在c数组中加入一个元素1,(2,3,4)表示同时加入多个元素

(4)c++=Array(5,6,7):表示变长加定长,要用俩个+

(1)c.insert(0,0):表示在下标为0的位置,加入一个元素0

(2)c.remove(1):删除下标为1的元素

(3)c.remove(0,3):删除以下标0开始的三个元素

(4)c.trimEnd(2):他也是删除,调用remove删除后面俩个

(5)c.toArray:表示的是将变长转为定长

5.CaseClass

主要记住俩点:(1)是class里面的一个特殊,不用new就可以直接调用

                         (2)模式匹配用的上

6.trait 接口

yunfeiTrait:里面有一个方法,报错,按住alt键,点下 override就好了

7.定长List

Nil:就是一个空的list

问不new list 如何拿到一个空的list,就用Nil

(1)val l = List(1,2,3,4):表示定义一个列表

(2)l.head:表示拿到第一个元素

(3)l.tail:biao表示拿到除了第一个元素的List

(4)val l2=1 ::Nil :定义列表l2,用1连接Nil,俩个冒号表示连接-

(5)2 :: l2 :这个是2开始的

8.变长

猜你喜欢

转载自blog.csdn.net/qq_42064119/article/details/81171897