risc-v中文社区

 找回密码
 立即注册
查看: 1087|回复: 0

[原创] risc-v开发基础 Scala 类---(11)

[复制链接]

347

主题

564

帖子

2237

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2237
发表于 2021-8-3 16:44:03 | 显示全部楼层 |阅读模式
scala中的类和java中的类的概念一样,语法形式有点不同:
class MyPersonClass (val age:Int,var addr:String,argc:String) {
//带参数形式的MyPersonClass它的主构造函数就是类中非字段,非方法的代码都是主构造函数的主体,
//主构造函数的参数是val age:Int,var addr:String,argc:String
//只不过val类型的变量将会自动创建getter方法,var类型的变量则会创建getter/setter方法,
//没有val或var的变量,比如上面argc,则纯粹只是一个参数变量而已,这个参数变量可以在主构造函数体内部使用
  println("main constructor is running.....")
  var hobby:String="" //var类型变量即会创建getter/setter
  def this(age:Int,addr:String){ //其它def this都是辅助构造函数,辅助构造函数第一句都要调用主构造函数
    this(age,addr,"")
    hobby=""
  }
  private def privdisp(s:String){println("private "+s)} //只能在类中使用
  protected def protecdisp(s:String){println("protected " + s)} //可以在本类中使用,也可以在子类中使用,但不能在类对象中使用
  def publicdisp(s:String){println("public " + s)} //可以在实例对象中使用,也可以在本类及子类中使用
}
测试:

object ClassConstructorTest {
  def main(args: Array[String]): Unit = {
    val mpc = new MyPersonClass(10,"road10#","TV")
    mpc.publicdisp("test")
  }
}
显示如下:
main constructor is running.....
public test

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



Archiver|手机版|小黑屋|risc-v中文社区

GMT+8, 2024-4-27 16:21 , Processed in 0.016107 second(s), 17 queries .

risc-v中文社区论坛 官方网站

Copyright © 2018-2021, risc-v open source

快速回复 返回顶部 返回列表