/**
* 主构造器直接定义在类名称的后面,参数列表和类名写在一起
* 主构造器的参数会自动提升为对象的属性,不需要在对象中重新定义一遍
*/
class Student(val id: Int, name: String) {
println("主构造器开始执行") //Student类的私有属性
private val city = "beijing" //调用object Student的私有属性
def events() = println(Student.job + "在" + city) var hobby: String = "basketball" def sayHello = println("hello") println("主构造器执行结束") // 辅助构造器
def this(id: Int, name: String, hobby: String) {
//todo 辅助器的第一行必须调用主构造器或者其他已经存在的辅助构造器
this(id, name)
this.hobby = hobby
} } /**
* 如果有一个class文件,还有一个与class同名的object文件,那么就称这个object是class的伴生对象,class是object的伴生类
* 所以这里class Student就是object Student的伴生类,object Student就是class Student的伴生对象
*/
object Student {
//object Student的私有属性
private val job = "秃头侠" def main(args: Array[String]): Unit = {
val zhangsan = new Student(1, "zhangsan")
zhangsan.sayHello
println("===============================")
val lisi = new Student(2, "lisi", "PC-Game")
lisi.sayHello
println("lisi的id为" + lisi.id + ",lisi的hobby为" + lisi.hobby)
println("===============================") /**
* 1.伴生类和伴生对象必须存放在一个.scala文件中
* 2.伴生类和伴生对象的最大特点就是可以相互访问
*/
//调用class Student的私有属性
val student = new Student(3, "一拳超人")
student.events()
println(student.city + "有" + job)
}
}
控制台输出结果:

主构造器开始执行
主构造器执行结束
hello
===============================
主构造器开始执行
主构造器执行结束
hello
lisi的id为2,lisi的hobby为PC-Game
===============================
主构造器开始执行
主构造器执行结束
秃头侠在beijing
beijing有秃头侠

最新文章

  1. 利用Python进行数据分析(13) pandas基础: 数据重塑/轴向旋转
  2. title与alt的区别
  3. Yii2框架实现计数器功能
  4. 课程设计 --- 黑白棋中的 AI
  5. ubuntu同时安装qt4.8和qt5.7
  6. Java参数按值传递?按引用传递
  7. 网站性能优化之CSS无图片技术:三角形
  8. Keep the Customer Satisfied
  9. Flash型单片机的加密与解密
  10. 分享一个手机端好用的jquery ajax分页类
  11. OpenLayers访问WTMS服务及添加Googlemap
  12. ionic2环境搭建与hello word
  13. EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒
  14. Web Uploader初始化隐藏容器失败及点击上传图片时反应较慢的问题
  15. Ubutun 16.04添加操作命令审计
  16. Java学习笔记二:数据类型II
  17. 使用自定义端口连接SQL Server 的方法
  18. 还没被玩坏的robobrowser(5)——Beautiful Soup的过滤器
  19. Confluence 6 使用 LDAP 授权连接一个内部目录 - 高级设置
  20. Nodejs开发人脸识别系统-教你实现高大上的人工智能

热门文章

  1. XML布局界面
  2. stand up meeting 1/18/2016
  3. idea ------- 源码调试运行
  4. PHP代码审计理解(二)----齐博CMS7.0文件覆盖
  5. HTML+CSS教程(六)浮动-float+定位-position+居中问题
  6. 进阶 Linux基本命令-2
  7. 百度云BCH配置说明
  8. (第九篇)Iptables详解
  9. QString 转换成 wchar 的一个小陷阱
  10. QFileDialog::getOpenFileName() hangs