Scala_5.类和对象

Scala_5.类和对象

package com.lius

/**
 * 类和对象
 */
object ClassAndObject{


  /**
   * 创建Point类
   * @param xc 类参数
   * @param yc 类参数
   */
  class Point(xc:Int,yc:Int){
    var x :Int = xc
    var y :Int = yc
    def move(dx:Int,dy:Int): Unit ={
      x += dx
      y += dy
      println(s"x的坐标点:${x}")
      println(s"y的坐标点:${y}")
    }
  }

  /**
   * 创建继承与Point的Location类
   * @param xc 类参数
   * @param yc 类参数
   * @param zc 类参数
   */
  class Location(val xc:Int,val yc:Int,val zc:Int) extends Point(xc,yc) {
    var z: Int = zc

    def move(dx: Int, dy: Int,dz:Int): Unit = {
      x += dx
      y += dy
      z += dz
      println(s"x的坐标点:${x}")
      println(s"y的坐标点:${y}")
      println(s"z的坐标点:${z}")
    }
  }

  /**
   * 创建Person类重写toString方法
   * override def toString = {...}
   */
  class Person{
    var name =""
    override def toString = s"${getClass.getSimpleName}[name=${name}]"
  }

  /**
   * 创建基于Person类的Employee类重写toString方法
   * override def toString = {...}
   */
  class Employee extends Person {
    var salary = 0.0
    override def toString = s"${getClass.getSimpleName}[name=${name},salary=${salary}]"
  }

  def main(args: Array[String]): Unit = {
    //利用类生成对象
    val pt = new Point(10,20)
    //调用对象move函数
    pt.move(10,10)
    //继承
    """
      1.重写非抽象方法必须用override修饰
      2.只有在主构造函数才可以往基类的构造函数里写参数
      3.在子类中重写超类抽象方法,不需要使用override关键字
      |""".stripMargin
    var loc =  new Location(10,20,5)
    loc.move(10,10,5)


    //override重写toString
    var fred = new Employee
    fred.name = "Fred"
    fred.salary = 5000000
    println(fred)
  }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值