scala 主从构造器
package cn.scala_base.oop.scalaclass /**
* 构造器分为两种,一种是主构造器,另一种是从构造器,所有的从构造器必须在其方法体
* 的第一行调用主构造器
*
* Man的主构造器无参数,所以调用时采用this();
*/
class Man {
var name: String = _;
var age: Int = _; //可以有多个从构造器,类似方法重载
def this(name: String) {
this();
this.name = name;
} def this(age: Int) {
this();
this.age = age;
}
def this(name: String, age: Int) {
this(name);
this.age = age;
//不能再写this(age);会造成重复调用主构造器 } //或者
/*def this(name:String,age:Int) {
this();
this.name = name;
this.age = age;
}*/ } //主构造器与类名放在一起,所有未写在方法体(或者说是代码块)中的代码均被视为主构造器的代码,如果主构造器中的参数被方法使用了,
//则会被声明成private[this],否则该参数仅仅属于主构造器,与new出的对象无关
class Person(name: String) {
println(name);
private var age = 0; def getName = name; //从构造器
def this(name: String, age: Int) {
this(name);
this.age = age;
} }
//可以给主构造器的参数设置默认值,这样new的时候可以不用传递参数.如果还被val修饰则不能再被该类的其他方法修改
class Person2(val name: String = "yeye") {
println(name); } object Constructor {
def main(args: Array[String]): Unit = { //主构造器无参,可以省略()
val m = new Man; /*val p = new Person("yeye");
println(p.getName);*/ val p2 = new Person2(); } }
scala 主从构造器的更多相关文章
- scala 学习笔记(04) OOP(上)主从构造器/私有属性/伴生对象(单例静态类)/apply方法/嵌套类
一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person ...
- Scala主构造器、私有构造器、构造器重载
Scala中的主构造器跟在定义类的时候声明类名之后 如下: class scala(arg : String) { // } private[this] 修饰该字段只能被当前所对应的对象所访问,其他对 ...
- Scala辅助构造器和主构造器
和java或c++一样,scala也可以有任意多的构造器.不过,scala类有一个构造器比其它所有构造器都更为重要,它就是主构造器.除了主构造器之外,类还可以有任意多的辅助构造器. 有两点需要注意: ...
- 【scala】构造器
和Java或C++一样,Scala可以有任意多的构造器. 不过Scala类有一个构造器比其他所有构造器都更为重要,它就是主构造器. 除了主构造器之外,类还可以有任意多的辅助构造器. 主构造器 在Sca ...
- scala之构造器详解
1.基本语法: 构造器分为主构造器和辅助构造器 class 类名(形参列表) { // 主构造器 // 类体 def this(形参列表) { // 辅助构造器 } def this(形参列表 ...
- Scala主构造器参数是否升级为成员与是否有get/set
1:主构造器前面添加val/var 关键字则升级为类成员,否则只是构造器中的一个参数而已. 2:private 修饰get/set方法权限,private var/val 成员变量,则有get/set ...
- 浅析 Scala 构造器
2019-04-15 关键字:Scala 主构造器.Scala 辅助构造器.Scala 构造器的区别 本篇文章系笔者根据当前所掌握知识对 Scala 构造器的一些心得总结,不保证文章所述内容的绝对.完 ...
- Scala 中的构造器
Scala上的从构造器也有一定的限制,Scala编程中写道. “Scala 里的每一个从构造器的第一个动作都是调用同一个类里面其他的构造器.换句话说 就是,每个 Scala 类里的每个从构造器都是以“ ...
- Effective Scala
Effective Scala Marius Eriksen, Twitter Inc.marius@twitter.com (@marius)[translated by hongjiang(@ho ...
随机推荐
- 【Codeforces Round #447 (Div. 2) A】QAQ
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] C语言程序练习题 [代码] #include <bits/stdc++.h> using namespace std; ...
- Java 学习(18):Java 序列化& 网络编程& 发送邮件
--Java 序列化 -- 网络编程 -- 发送邮件 Java 序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信 ...
- 基于StringUtils工具类的常用方法介绍(必看篇)
前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅. isEmpty(String str) 是否为空,空格字符为false is ...
- springMVC easyUI filebox 单个文件上传
被这个文件上传坑到如今.还是自己技术问题,照着之前extjs项目那边的上传实例,愣是上传不了 到后面就查了下springMVC的文件上传,依照那样搞定了http://blog.csdn.net/jad ...
- C#调用oracle存储过程自定义表类型
http://blog.csdn.net/studyzy/article/details/11524527
- POJ 2983 Is the Information Reliable? 依旧差分约束
http://poj.org/problem?id=2983 题目大意: 星际大战开始了.你购买了情报,需要判断它的准确性.已知地方的根据地在由南向北排成一条直线.P A B X,表示A在B北面距离X ...
- 简要分析unity3d中剪不断理还乱的yield
在学习unity3d的时候非常easy看到以下这个样例: void Start () { StartCoroutine(Destroy()); } IEnumerator Destroy(){ yie ...
- HDU 1045 Fire Net(行列匹配变形+缩点建图)
题意:n*n的棋盘上放置房子.同一方同一列不能有两个,除非他们之间被墙隔开,这种话. 把原始图分别按行和列缩点 建图:横竖分区.先看每一列.同一列相连的空地同一时候看成一个点,显然这种区域不可以同一时 ...
- html css div img垂直居中
<head> <meta charset="UTF-8"> <meta name="Generator" content=&quo ...
- 苹果浏览器Safari对html标签submit按钮的默认渲染
-webkit-appearance: none; 上面的设置就告诉Safari不要使用默认渲染,使用我们写好的 有这么一个webkit的私有属性: -webkit-appearance:none; ...