【Scala】通过简洁代码搞明白伴生关系、主构造器和辅助构造器的关系
/**
 * 主构造器直接定义在类名称的后面,参数列表和类名写在一起
 * 主构造器的参数会自动提升为对象的属性,不需要在对象中重新定义一遍
 */
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有秃头侠
【Scala】通过简洁代码搞明白伴生关系、主构造器和辅助构造器的关系的更多相关文章
- 就想搞明白,component-scan 是怎么把Bean都注册到Spring容器的!
		作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 忒复杂,没等搞明白大促都过去了! 你经历过618和双11吗?你加入过大促时候那么多复 ... 
- 相机拍的图,电脑上画的图,word里的文字,电脑屏幕,手机屏幕,相机屏幕显示大小一切的一切都搞明白了!
		相机拍的图,电脑上画的图,word里的文字,电脑屏幕,手机屏幕,相机屏幕显示大小一切的一切都搞明白了! 先说图片X×dpi=点数dotX是图片实际尺寸,简单点,我们只算图片的高吧,比如说拍了张图片14 ... 
- Scala 深入浅出实战经典 第49课 Scala中Variance代码实战(协变)
		王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ... 
- 搞不清FastCgi与PHP-fpm之间是个什么样的关系 - SegmentFault
		搞不清FastCgi与PHP-fpm之间是个什么样的关系 - SegmentFault 搞不清FastCgi与PHP-fpm之间是个什么样的关系 3赞 踩 收藏 我在网上查fastcgi与php-fp ... 
- 开源作品ThinkJDBC—一行代码搞定数据库操作
		1 简介 ThinkJD,又名ThinkJDBC,一个简洁而强大的开源JDBC操作库.你可以使用Java像ThinkPHP框架的M方法一样,一行代码搞定数据库操作.ThinkJD会自动管理数据库连接, ... 
- vue-router 路由元信息    终于搞明白了路由元信息是个啥了
		vue-router 路由元信息:https://blog.csdn.net/wenyun_kang/article/details/70987840 终于搞明白了路由元信息是个啥了:https:// ... 
- 5行js代码搞定导航吸顶效果
		一.HTML布局 首先写HTML布局 <body> <div id="wrap"></div> </body> 二.CSS样式 给点 ... 
- 终于搞明白Unicode,ASCII,UTF8,UCS2编码是啥了
		[本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 前言 本文起因于 ... 
- 30行代码搞定WCF并发性能测试
		[以下只是个人观点,欢迎交流] 30行代码搞定WCF并发性能 轻量级测试. 1. 调用并发测试接口 static void Main() { List< ... 
随机推荐
- 【spring 国际化】springMVC、springboot国际化处理详解
			在web开发中我们常常会遇到国际化语言处理问题,那么如何来做到国际化呢? 你能get的知识点? 使用springgmvc与thymeleaf进行国际化处理. 使用springgmvc与jsp进行国际化 ... 
- Linux 命令系列之 seq
			简介 seq -- print sequences of numbers seq 命令可以输出各种有规律的数字. 用法 usage: seq [-w] [-f format] [-s string] ... 
- Daily Scrum 12/14/2015
			Progress: Dong&Minlong: 基于Oxford Speech API成功实现语音输入的功能,但由于服务器存在访问次数的限制(每分钟6次),所以暂不准备将此功能加入ALPHA版 ... 
- V - Largest Rectangle in a Histogram HDU - 1506
			两种思路: 1 单调栈:维护一个单调非递减栈,当栈为空或者当前元素大于等于栈顶元素时就入栈,当前元素小于栈顶元素时就出栈,出栈的同时计算当前值,当前值所包含的区间范围为从当前栈顶元素到当前元素i的距离 ... 
- 一道简单的SQL注入题
			这是我真正意义上来说做的第一道SQL题目,感觉从这个题目里还是能学到好多东西的,这里记录一下这个题目的writeup和在其中学到的东西 link:https://www.ichunqiu.com/ba ... 
- kafka消息分区机制原理
			背景 kafka如何支撑海量消息的集中写入? 答案就是消息分区. 核心思想是:负载均衡,采用合适的分区策略把消息写到不同的broker上的分区中: 其它的产品中有类似的思想. 比如monogodb, ... 
- Spring Boot 中使用自定义注解,AOP 切面打印出入参日志及Dubbo链路追踪透传traceId
			一.使用背景 开发排查系统问题用得最多的手段就是查看系统日志,在分布式环境中一般使用 ELK 来统一收集日志,但是在并发大时使用日志定位问题还是比较麻烦,由于大量的其他用户/其他线程的日志也一起输出穿 ... 
- SpringCloud(三)学习笔记之Ribbon
			spring Cloud Ribbon 是一个客户端的负载均衡器,它提供对大量的HTTP和TCP客户端的访问控制. 客户端负载均衡即是当浏览器向后台发出请求的时候,客户端会向 Eureka Serve ... 
- python中文资源大全
			Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列 ... 
- 手把手教你使用Python爬取西刺代理数据(下篇)
			/1 前言/ 前几天小编发布了手把手教你使用Python爬取西次代理数据(上篇),木有赶上车的小伙伴,可以戳进去看看.今天小编带大家进行网页结构的分析以及网页数据的提取,具体步骤如下. /2 首页分析 ... 
