Spark大数据分与实践笔记(Scala语言基础-3)

1.4 Scala面向对象的特性

1.4.1 类与对象

无论是在Scala中还是Java中,类都是对象的抽象,而对象都是类的具体实例;类不占用内存,而对象占用存储空间。由于面向对象的核心是对象,若想要在应用程序中使用对象,就必须得先创建一个类。类是用于描述一组对象的共同特征和行为。
创建类的语法格式如下:

class 类名[参数列表] 

当类创建好之后,若是想要访问类中的方法和字段,就需要创建一个对象。
创建对象的语法格式如下:

类名 对象名称 = new 类名(); 

下面创建一个Point类,并在类中定义两个字段x和y以及一个没有返回值的move( )方法,使Point类的实例对象来访问类中的方法和字段,代码如文件1-7所示:
文件1-1 Ch07_ClassTest.scala

package cn.itcast.scala
//定义类
class Point(xc:Int,yc:Int){
   
//定义字段
  var x:Int = xc
  var y:Int = yc

  //定义方法
  def move(dx:Int,dy:Int):Unit = {
   
    x = x + dx
    y = y + dy
    println("x的坐标点:"+x)
    println("y的坐标点:"+y)
  }
}
object Ch07_ClassTest {
   
  def main(args: Array[String]): Unit = {
   
    //定义类对象
    val pt = new Point(10,20)

    //移动到一个新的位置
    pt.move(10,10)
  }
}

1.4.2 继承

• Scala和Java类似,只允许继承一个父类。
• Java只能继承父类中非私有的属性和方法,而Scala可以继承父类中的所有属性和方法。
在Scala子类继承父类的时候,有以下几点需要注意
• 如果子类要重写一个父类中的非抽象方法,则必须使用override关键字,否则会出现语法错误。
• 如果子类要重写父类中抽象方法时,则无需使用override关键字
下面,创建一个Point类和Location类,并且Location类继承Point类,演示子类Location重写父类Point中的字段,具体代码如文件1-8所示:
文件1-2 Ch08_ExtendsTest.scala

package cn.itcast.scala
//定义父类:Point类
class Point2(val xc:Int,val yc:Int){
   
  //定义字段
  var x:Int = xc
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妉妉师姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值