欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > Scala 面向对象编程总结

Scala 面向对象编程总结

2025/4/17 13:28:49 来源:https://blog.csdn.net/2401_89907524/article/details/146976537  浏览:    关键词:Scala 面向对象编程总结

​​​抽象属性和抽象方法

基本语法

  1. 定义抽象类:abstract class Person{} //通过 abstract 关键字标记抽象类
  2. 定义抽象属性:val|var name:String //一个属性没有初始化,就是抽象属性
  3. 定义抽象方法:def hello():String //只声明而没有实现的方法,就是抽象方法

案例实操

abstract class Person {val name: String def hello(): Unit
}val name: String = "teacher" def hello(): Unit = {println("hello teacher")}
}
单例对象(伴生对象)

单例对象‌:Scala 中没有静态的概念,但提供了单例对象来模拟类对象。若单例对象名与类名一致,则称为该类的伴生对象。

伴生对象语法‌:使用 object 关键字声明,伴生对象对应的类称为伴生类。

apply 方法‌:通过伴生对象的 apply 方法,可以实现不使用 new 关键字创建对象。如果想让主构造器私有,可以在 () 前加 private

案例实操

//(1)伴生对象采用 object 关键字声明
object Person {var country: String = "China"
}//(2)伴生对象对应的类称之为伴生类,伴生对象的名称应该和伴生类名一致。
class Person {var name: String = "bobo"
}object Test {def main(args: Array[String]): Unit = {//(3)伴生对象中的属性和方法都可以通过伴生对象名(类名)直接调用访
问。println(Person.country)}
}
特质

特质(Trait)‌:Scala 中用特质来代替接口的概念,一个类可以混入(mixin)多个特质。

特质声明‌:使用 trait 关键字声明,特质中可以包含抽象方法和具体方法。

特质基本语法‌:一个类继承特质时使用 extends 关键字,如果同时继承多个特质或父类,使用 with 关键字连接。

动态混入‌:创建对象时混入特质,而无需使类混入该特质。

特质叠加‌:解决多个混入特质中的方法冲突问题,Scala 采用了特质叠加的策略。

 类型检查和转换

类型检查‌:使用 isInstanceOf[T] 判断对象是否为某个类型,使用 asInstanceOf[T] 将对象强制转换为某个类型。

classOf‌:获取对象的类名。

案例实操‌

trait PersonTrait {// 声明属性var name:String = _// 声明方法def eat():Unit={}// 抽象属性var age:Int// 抽象方法def say():Unit
}
定义新类型

type 关键字‌:使用 type 关键字可以定义新的数据类型名称,本质上就是类型的一个别名。

object Test {def main(args: Array[String]): Unit = { type S=Stringvar v:S="abc"def test():S="xyz"}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词