Scala面向对象1

scala: 官网下载tar包  + 设置环境变量 + 安装前提:jdk

1.数据类型:
asInstanceOf :将对象类型强制转换为指定类型。
isInstanceOf:判断对象是否为指定类型

  scala> 1.isInstanceOf[String]
  res0: false

  scala> List(1).isInstanceOf[List[String]]
  res0: true

工作中我们肯定要借助于IDE(Integrated Development Environment )
            IDEA是能和eclipse使用相同的快捷键的

IDEA 安装完 : 但是是不支持scala的,必须要安装scala插件
点开file/setting/plugins

2.定义函数/方法
def 函数名(x:Int, y:String,.....) : 返回类型 = {    
    xxxxx  // 最后一行代码默认作为整个函数的返回值
}    

3.to,until and Range的区别
to:  []
until: [)
Range: [)    =until

4.默认参数 & 命名参数 & 变长参数
默认参数:
默认参数就是在函数定义的时候直接给函数的入参进行赋值

命名参数:赋值的时候,参数的顺序可以不一致

变长参数:长度不定,具有扩展性。格式:参数名:参数类型*

5.面向对象编程
面向对象的三大特性:封装,继承,多态
五大基本原则:单一职责原则SRP,开放封闭原则OCP,替换原则,依赖原则,接口分离原则。
详见:https://blog.youkuaiyun.com/csCrazybing/article/details/80694263

6.抽象类
 类中有一个或者多个方法/属性没有实现:只有定义 没有实现
 是不能直接使用的,必须要通过实现了该抽象类的属性或者方法来使用
 附:子类重写父类中的方式或者属性不需要使用overwrite

### Scala 面向对象编程概念 #### 类与对象 在Scala中,类是创建对象的蓝图。通过定义类来封装数据和操作这些数据的方法[^1]。 ```scala class Person(val name: String, val age: Int) { def introduce(): Unit = println(s"Name is $name and Age is $age") } ``` 上述代码展示了如何定义一个`Person`类,并为其提供了一个名为`introduce()`的方法用于自我介绍。 对于单例模式的支持,Scala提供了特殊的语法糖——`object`关键字用来声明单例对象。这使得编写工具函数变得非常方便。 ```scala object MathUtil { def add(a: Int, b: Int): Int = a + b } println(MathUtil.add(3, 5)) ``` 这里展示的是一个简单的加法计算工具类`MathUtil`作为单例存在。 #### 特质(Trait) 特质类似于其他语言里的接口,但是更加强大因为它可以包含具体实现。可以通过`with`关键字将多个特质组合在一起赋予某个特定类型的实例上[^4]。 ```scala trait Logger { def log(message: String): Unit = println(s"[LOG]:$message") } val userLogger = new AnyRef with Logger userLogger.log("User logged in.") ``` 这段代码说明了怎样利用特质为任意类型添加日志记录功能而无需修改原有结构。 #### 继承机制 当涉及到继承关系时,子类可以在其主构造器里显式调用超类(即父类)的构造器完成初始化工作;而在Java里面则是隐式的处理方式[^5]。 ```scala class Employee(name: String, age: Int, private var salary: Double) extends Person(name, age){ override def toString: String = super.toString + s"\nSalary=$salary" } val emp = new Employee("Alice", 27, 60000) emp.introduce() println(emp) ``` 此部分演示了员工类扩展自人员基类的过程以及覆盖toString方法来自定义字符串表示形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值