Scala语言面向对象

apply1. 面向对象的基本概念:

  把数据及对数据的操作方法放在一起,作为一个相互依存的整体-----对象,面向对象的三大特征:封装、多态、继承

2. scala类的定义

· class Emploee(name: String, age: Int)

   *scala中定义类时无访问限制符public | protected | default | private

   a.成员的getter和setter方法

    类中的属性定义为private时会自动添加getter & setter方法

      使用private val修饰只自动添加getter方法

      使用private[this]修饰不添加getter & setter方法

   b.类的构造器

    类的主构造器只能有一,与类的声明结合在一起:class Emploee(name: String, age: Int)

    类的从构造器可以有多个,用this关键字实现:def this(age: Int){ this("beichen", age)}

   c.内部类的用法与java类似

3.scala中的object关键字

  object相当于java中的static关键字,object内的成员都是静态的。main函数需要写在object对象内;当object对象与类名一致时称为该类的伴生对象,

    类和类的伴生对象需定义在同一个源码文件中,它们可以相互访问对方的私有成员。

4. scala中的apply方法

  apply方法的主要作用在于省略new关键字;

  

  * apply方法定义在伴生对象中

5. abstract关键字修饰的类为抽象类,与java用法类似

6. trait特质,可以理解为支持多继承的抽象类

  

  Ordered特质,可以用于比较对象大小,需要注意的是Ordered并未替对象实现equals方法,需要自定义。

7. 包与包对象

  包的用法与java类似,package beichen.scala 

  由于java虚拟机的限制,包可以包含类、对象和特质,但不能包含函数或者变量的定义。

  Scala中,包对象的出现正是为了解决这个局限。Scala中的包对象:常量,变量,方法,类,对象,trait(特质

  

8. 样本类case class

Scalacase class就是在普通的类定义前加case这个关键字,然后你可以对这些类来模式匹配。

模式匹配相当于java中的switch case语句,scala中的模式匹配功能更强大。

* _相当于default语句

scala模式匹配中的守卫,即在模式匹配中增加条件语句

 样本类应用于模式匹配

 

  

猜你喜欢

转载自www.cnblogs.com/beichenroot/p/11376796.html