scala构造器

package cn.itcast.scala.day2

/**
* Created by ZhaoXing on 2016/6/27.
*/
//跟类名交织在一起的叫 主构造器
class Student (val name: String, var age: Int, faceValue: Double = 99.99, private var height: Int = 18) {

private[this] var gender : String = null

def show(): Unit = {
//faceValue = 1000
println(faceValue)
}

//辅助构造器 def this (参数)
def this(name: String, age: Int, gender: String) {
//辅助构造器第一行一定要先调用主构造器
this(name, age)
this.gender = gender
}

}

object Student {

def main(args: Array[String]) {
val p = new Student("zx", 30, 100, 180)
println(p.age)
println(p.name)
p.age = 18

p.height = 199

println(p.age)

println(p.height)

//val per = new Person
//println(per)
}
}

object Main {
def main(args: Array[String]) {
val s = new Student("zx", 30, 100)
//s.height
}
}

主构造器:类中必须生命的属性,辅助构造器中有新增的必须在类中声明为属性。

时间: 2024-10-18 15:56:28

scala构造器的相关文章

浅析 Scala 构造器

2019-04-15 关键字:Scala 主构造器.Scala 辅助构造器.Scala 构造器的区别 本篇文章系笔者根据当前所掌握知识对 Scala 构造器的一些心得总结,不保证文章所述内容的绝对.完全正确性. 同 Java 一样,Scala 中的类的实例化过程也是从 构造器 开始的.只不过 Scala 中的构造器有两种 1. 主构造器: 2. 辅助构造器. 我们可以使用任一种构造器来实例化我们的类.不过,就本质上来说,主构造器 才是真正将我们的类实例化的构造器.下面我们就来简单探讨一下 Sca

Scala基础:面向对象——类

类 (class) 类是对象的模板,通过构造类,能够使用new关键字声明一系列同结构的对象. Scala的一个源文件可以包含多个public类. 声明Person类: class Person{   var name : String = _   val age = 10   private[this] val gender = "male" } 说明: name字段被赋值为"_""_"即占位符.表示name被声明为String.但赋值为&quo

Scala编程--函数式对象

本章的重点在于定义函数式对象,也就是说,没有任何可变状态的对象的类.作为运行的例子,我们将创造若干把分数作为不可变对象建模的类的变体.在这过程中,我们会展示给你Scala面向对象编程的更多方面:类参数和构造函数,方法和操作符,私有成员,子类方法重载,先决条件检查,同类方法重载和自指向. 6.1 类Rational的式样书 一个,或许不怎么重要的,发现是数学上,分数不具有可变的状态.一个分数加到另外一个分数上,产生的结果是一个新的分数.而原来的数不会被“改变”.我们将在本章设计的不可变的Ratio

Scala总结

===概述 scala是一门以java虚拟机(JVM)为目标运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言. scala是纯粹的面向对象的语言.java虽然是面向对象的语言,但是它不是纯粹的,因为java的基本数据类型不是类,并且在java中还有静态成员变量和静态方法.相反,scala是纯粹面向对象的,每个值都是对象,每个操作都是方法调用. scala也是一个成熟的函数式语言.函数式编程有两个指导思想:①函数是头等值,也就是说函数也是值,并且和其他类型(如整数.字符串等)

每天学一点Scala之class 构造器

A.scala中类的构造器分为: 主构造器 从构造器 B.  主构造器 参数列表,就写在类名后面: 主构造器内容:类里,除了字段定义和方法定义外的内容,就是主构造器的内容了. C.  从构造器 类里,以def this开头的,都是从构造器, 从构造器的第一行,必须调用主构造器,或者,调用其他从构造器:其实,就是限制,从构造器的第一行,必须是主构造器,主构造器是类的唯一入口点.

Scala 中的构造器

Scala中的构造器相较于Java比较特殊,分为两种:主构造器,从构造器.主构造器是和类中字段和方法的定义混合在一起的. 在Scala中,不需要像Java一样需要在类中定义一个与类名相同的方法来当作构造器. 主构造器的参数列表写在类名的后面,而构造器的内容,则直接写在类定义里面,所以说,一个Scala类里面,除了方法和字段的定义以外的代码,全都是主构造器的内容. class Fruit(n: String, w: Int) { val name = n val weight = w printl

Scala主构造器和辅助构造器

注:1.本文主要参考自<快学Scala>2.使用jd-gui反编译   Scala的构造方法跟Scala很相似,也可以有任意多的构造器.在Scala中构造器分为主构造器和辅助构造器 在Scala中可以包括一个主构造器和任意多个辅助构造器 主构造器 在Scala中,每个类都有主构造器.而且主构造器的定义是跟类定义交织在一起的. 主构造器的参数是直接放置在类名后面的,如下: class Person(val name:String,val age:Int) { //your code } 主构造器

Scala类的构造器与访问器

1.构造器 在Scala中,每个类都有一个主构造器.主构造器与类的定义交织在一起,如下: class Person ( private var _name: String, private var _age: Int) 主构造器会执行类定义中的所有语句.如下,println语句是主构造器的一部分,当类被实例化时,println语句会立即执行. class Person private( private var _name: String, private var _age: Int){ prin

Scala入门到精通——第十五节 Case Class与模式匹配(二)

本节主要内容 模式匹配的类型 for控制结构中的模式匹配 option类型模式匹配 1. 模式的类型 1 常量模式 object ConstantPattern{ def main(args: Array[String]): Unit = { //注意,下面定义的是一个函数 //函数的返回值利用的是模式匹配后的结果作为其返回值 //还需要注意的是函数定义在main方法中 //也即scala语言可以在一个函数中定义另外一个函数 def patternShow(x:Any)=x match { ca