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 ...
随机推荐
- PM-企业数字化转型,数据治理是关键
企业数字化转型是大势所趋,通过数据治理.数据平台建设.数据分析与建模,把数据变成服务,使数据能在企业内顺畅流动起来,为企业带来巨大的价值.数据是企业数字化转型的重要基础. 数据能创造价值,但数 ...
- k8s单节点改为高可用和更新证书
master单节点添加master节点 apiServer添加域名更新证书 更新kubenertes证书有效期 环境 kubernetes v1.22.12 使用kubeadm安装的集群 #添加节点 ...
- dubbo(一)spring schema拓展技术
https://blog.csdn.net/java_zldz_xuws/article/details/84648398 在阐述dubbo原理之前,我先介绍一下dubbo与spring怎么糅合在一块 ...
- 解锁4K,Xilinx MPSoC ARM + FPGA高清视频采集与显示方案!
当下,随着数字化多媒体技术以令人惊叹的速度不断演进,高清视频处理成为众多领域关注的焦点.今天为大家分享4K HDMI 高清视频方案,基于Xilinx UltraScale+ MPSoC XCZU7EV ...
- 『玩转Streamlit』--上传下载文件
在Web应用中,文件的上传下载是交互中不可缺少的功能. 因为在业务功能中,一般不会只有文字的交互,资料或图片的获取和分发是很常见的需求. 比如,文件上传可让用户向服务器提交数据,如上传图片分享生活.提 ...
- fatal: repository 'http:/xxxx/root/x.git/' not found
我遇到的问题其实就是gitlab旧服务器迁移到新服务器之后用户的没权限了没有权限操作了 所以抛出该异常 解决办法是赋予新的权限
- Qt/C++编写网络摄像头推流(4路1080P主码流只占用0.2%CPU/极低延时极速响应)
一.前言说明 将从网络摄像头拉流过来的视频流重新推流出去,是目前一个很常规的做法,尤其是推流到流媒体服务中心,这样流媒体服务中心就把散落在各个区域的监控摄像头集中起来统一管理,同时提供对外一致的访问接 ...
- Qt开发经验小技巧191-195
关于QList队列的处理中,我们最常用的就是调用append函数添加item,往前插入item很多人第一印象就是调用insert(0,xxx)来插入,其实QList完全提供了往前追加item的函数pr ...
- EPPlus使用方法---Excel处理我觉得超级好用
目前只是用到导出Excel功能,导出大规模数据量速度也很快,而且比较容易操作(最起码导出是,暂时没有用到处理已存在的excel功能,有人说NPOI也好用,试了一下,最起码导出这个不如EPPlus ...
- [转]怎么使用PyCharm编写Python程序,简单教程
原文链接:怎么使用PyCharm编写Python程序,简单教程.