Scala学习记录

Scala创建对象方式:

 

①new:用new关键字创建类的对象;

②伴生对象:使用object关键字创建一个单例对象;

③apply:apply是一个方法,需要在伴生对象中实现这个方法。

判断对象所属类:

 

( 1 ) getClass:使用反射机制判断Scala对象所属的类。假设判断对象A和对象B是否属于同一个类,通过A.getClass == B.getClass的方式判断是否相等,A.getClass表示A对象所对应类的反射对象,B.getClass表示B对象所对应类的反射对象。如果这两个对象的反射对象所属类型和示例对象相等,那么这两个对象一定属于同一个类。

 

( 2 ) isInstanceof:判断对象是否属于某一个类型,A.isInstanceof [ B ]表示判断对象A是否属于类型B,实际上是判断A是否是B或者B的子对象。如果返回true,则表示A是B的子对象;如果返回false,则表示A不是B的子对象。使用isInstanceof进行判断时,A表示对象,B表示类型。

对象相等性判断:

 

( 1 ) equal方法:相当于Java中的equals方法。

 

( 2 ) == 与 !=:相当于Java中的equals方法。

 

( 3 ) eq 与 ne:相当于Java中的引用(使用 == 判断引用)。

 

覆写(重写)equals方法时,应满足:

 

①方法的姓名不可改变;

 

②参数列表一定要相同,参数类型是Ang类型;

 

③重写方法时需要使用override关键字。

 

格式:

 

  override def equals(other: Any) : boolean = {

 

       true/false

 

  }

覆写原则:(1)反射性:在比较对象 × 和对象 y 是否相等时,对象x调用 equals方法与自身相比时,结果一定返回 true,即 x.equals(x)的结果是 true。(2)对称性:如果 x.equals(y)的结果为true,那么 y.equals(x)的结果一定也是 true。(3) 过渡性:如果 x.equals(y)=true, y.equals(z)=true,那么 x.equals(z)=true。(4) 非空性:如果x是一个非空的元素,那么x.equals(null) 结果返回 false。

元组类型:

 

元组:一种特殊的数据类型,可与很多不同类型的数据组合在一起。

 

定义一个元组:

 

var s1 = (1,“string”false)

 

获取元素

 

名称._N: 名称就是元组名,N表示第几个元素

 

eg:println(s1._1)

特殊类型——Nothing:

 

Nothing是一个抽象类,可赋值给任何类型

 

把异常定义为Nothing类型可帮助推断返回值类型

 

函数定义:

 

def关键字开头,用来定义函数,Scala的函数返回值类型定义在函数参数列表之后并通过冒号分隔。

 

简写方法(Scala的函数规则):

 

1.没有参数,可省略定义函数和调用时的()。

 

2.返回值类型一般可省略,他会自己去推断出来。

 

3.返回值可不写return,把返回值写在代码段的后面。

函数调用:

 

声明一个函数之后,可以通过“对象,函数名(参数列表)”的方式调用该函数。

 

定义一个Rational类,说明Scala函数的使用:

 

( 1 )定义一个求两个整数和的方法。

 

( 2 )定义一个求两个数的最大公约数的方法。

 

eg:指定了变量名,创建RunFunction.scala文件:

 

          package scala04 

 

          object RunFunction

 

                 def main ( args : Array[ String ] ) : Unit = {

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值