Scala重写构造函数
package com.wyh.scala.classData
object Demo4Class {
def main(args: Array[String]): Unit = {
val stu = new Student("张三", 23)
println(stu)
}
}
//(_name: String, _age: Int) 默认构造函数的参数列表
class Student(_name: String, _age: Int) {
/**
* scala默认构造函数
* {} 所有代码都会被执行
*
*/
println("默认构造函数")
//定义成员变量
val name: String = _name
val age: Int = _age
// _ 占位符 没有意义
var gender: String = _
var clazz: String = _
/** *
* 重载构造函数
*
*/
def this(_name: String, _age: Int, gender: String) {
//在重载构造函数第一行需要先调用默认构造函数
this(_name, _age)
println("重载构造函数")
//给成员变量赋值
this.gender = gender
}
//多重构造函数
def this(_name: String, _age: Int, gender: String, clazz: String) {
//在重载构造函数第一行需要先调用默认构造函数
this(_name, _age, gender)
println("重载构造函数")
//给成员变量赋值
this.clazz = clazz
}
/**
* 重写Object的toString方法
*
* 方法没有参数的时候() 可以省略
*
**/
override def toString: String = {
//当最后一行作为返回值的时候return 可以省略
//return name + "\t" + age
name + "\t" + age + "\t" + gender
}
}
Scala重写构造函数的更多相关文章
- Scala 中 构造函数,重载函数的执行顺序
在调试scala在线开发教程(http://www.imobilebbs.com/wordpress/archives/4911)的过程中看到了以下代码,但是这段代码无论怎么调试都无法成功. abst ...
- Scala——构造函数
Scala的构造函数分为主构造函数和辅助构造函数. 辅助构造函数 辅助构造函数比较容易理解,它们同C++和Java的构造函数十分类似,只有两处不同: 1.辅助构造函数的名称为this,这主要是考虑到在 ...
- 【Scala】Scala之Classes and Properties
一.前言 前面学习了控制结构,下面学习Scala的Class和Properties. 二.Class&Properties 尽管Scala和Java很类似,但是对类的定义.类构造函数.字段可见 ...
- Scala:类,对象和特征(接口)
http://blog.csdn.net/pipisorry/article/details/52902609 Scala类和对象 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象 ...
- 【Scala篇】--Scala初始与基础
一.前述 Scala是基于JVM的另一个语言. Scala官网6个特征. 1).Java和scala可以混编 2).类型推测(自动推测类型) 3).并发和分布式(Actor) 4).特质,特征(类似j ...
- spark快速开发之scala基础之3类,对象,特征
类 scala的类定义非常灵活 class test4 class test2{} class test3(x:Int) 定义一个带构造函数的类 class Point (x : Int,y : In ...
- Spark记录-Scala类和对象
本章将介绍如何在Scala编程中使用类和对象.类是对象的蓝图(或叫模板).定义一个类后,可以使用关键字new来创建一个类的对象. 通过对象可以使用定义的类的所有功能. 下面的图通过一个包含成员变量(n ...
- Scala 语法基础
一 简介 Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各种特性.Scala 运行在Java虚拟机上,并兼容现有的Java程序.Scal ...
- scala学习(idea编译过程https://blog.csdn.net/guiying712/article/details/68947747)
scala官网 https://www.scala-lang.org/ 菜鸟教程学习 http://www.runoob.com/scala/scala-basic-syntax.html w3sch ...
- 1.scala基础语法总结
Scala基础语法总结:Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ; 是可选的.如果一行里写多个语句那么分号是需要的 val s = "菜鸟教程"; pr ...
随机推荐
- 授权|取消授权MYSQL数据库用户权限
授权 queryusr用户查询test数据库 grant select on test.* to queryusr@'%'; flush PRIVILEGES 收回queryusr用户查询test数据 ...
- 【C#】【平时作业】习题-12-事件
目录 1. 什么是事件? 2. 事件与委托的关系是什么? 3. 事件发生的类(事件发生器)的主要内容与作用? 4. 事件接收处理的类的主要内容与作用? 5. 什么是订阅事件 ? 6. 如何引发事件? ...
- 【爬虫】爬虫简单举例(三种写法) 涉及requests、urllib、bs4,re
目录 写法1:requests + re 写法2:urllib + re 方法3:request + bs4 补充.我在发了这篇文章之后,后面又要爬这个论坛.然后我发现我没有认真观察那个网页的源码,所 ...
- 【人工智能】【深度学习】CUDA与CUDNN安装
cuDA安装 基础 CUDA工具包 NVIDIA CUDA 工具包提供了开发环境,可供创建经 GPU 加速的高性能应用.借助 CUDA 工具包,您可以在经 GPU 加速的嵌入式系统.台式工作站.企业数 ...
- mysql5.7以后group by 报错 sql_mode=only_full_group_by的解决方法
一.发现问题 1.查询语句 SELECT * from class group by class_name; 2.报错结果 ..... this is incompatible with sql_mo ...
- arch linux deepin-wine-wechat
https://aur.archlinux.org/packages/deepin-wine-wechat md5sum for WeChatSetup-3.9.0.28.exe should be ...
- RedisTemplate配置的jackson.ObjectMapper里的一个enableDefaultTyping方法过期解决
1.前言 最近升级SpringBoot,从2.1.6版本升级到2.2.6版本,发现enableDefaultTyping方法过期过期了. 该方法是指定序列化输入的类型,就是将数据库里的数据安装一定类型 ...
- java - Powermock-Failed to transform class with name...ArrayIndexOutOfBoundsException: 3
I'm trying to run a junit test. i'm using: junit 4.10,easymock 3.0,powermock-core 1.4.10 (uses javas ...
- [转]OpenCV三角测量重建triangulatePoints原理解析
opencv源代码注释 附上opencv三角测量函数的主要代码和注释 cvTriangulatePoints(CvMat* projMatr1, CvMat* projMatr2, CvMat* pr ...
- 推荐一个windows系统的下载和安装的网址:win7之家
win7之家:http://www.windows7en.com/ 精校 完整 极致 Windows系统下载仓储站HelloWindows :https://hellowindows.cn/