【scala】 scala 类 (五)
1、scala类
1.class 关键字
2.var 属性 默认生成getter/setter 方法
3.val 属性 默认生成getter 方法
4. 自定义getter /setter 方法 , property 和 proeprty_ 方法来表示 getter 和setter方法
5. 主构造函数 和辅构造函数的定义使用
6.使用 @BeanProperty 来生成 getter/setter方法
7. 重写toString 方法 ,利用scala字符串插值来格式化输出
import scala.beans.BeanProperty /**
* @author xwolf
* @date 2017-04-12 16:52
* @since 1.8
*/
class Person { var age:Int=0 //直接定义属性
var name:String="" val hello:String="hello" private var initState:Int=0 @BeanProperty var gender:Int=0 //性别 def this(name :String){ //辅助构造器
this() // 主构造器
this.name=name
} def this(name:String,age:Int){ //辅助构造器
this(name)
this.age=age
} def state=initState //getter 方法
def state_=(newState:Int): Unit ={ //setter 方法
initState=newState
} def check(age:Int):Boolean={
if (age<0 || age>150) false else true
} //override 重写toString 方法
//s 是字符串插值;Scala 提供了三种创新的字符串插值方法:s,f 和 raw
override def toString = s"Person($age, $name)"
}
测试类:
/**
* @author xwolf
* @date 2017-04-12 16:40
* @since 1.8
*/
object Clazz { def main(args: Array[String]): Unit = {
// 创建对象
val person = new Person
person.age = -21
person.name="Hello"
println(person.hello) val check= person.check(person.age)
if (!check) println("年龄不合法") else println(person)
person.state=12
println(person.state)
//通过构造器创建对象
val cperson =new Person("老万")
println(cperson) val dperson = new Person("万里云",10)
println(dperson) //@BeanProperty 访问
person.setGender(1)
println(person.getGender) } }
参考资料:
【scala】 scala 类 (五)的更多相关文章
- 泛函编程(4)-深入Scala函数类
		既然是泛函编程,多了解一下函数自然是免不了的了: 方法(Method)不等于函数(Function) 方法不是函数但可以转化成函数:可以手工转换或者由编译器(compiler)在适当的情况下自动转换. ... 
- scala学习-类与对象
		类 / 对象 [<快学Scala>笔记] 一.类 1.Scala中的类是公有可见性的,且多个类可以包含在同一个源文件中: class Counter{ private var value ... 
- Scala 函数(五)
		函数是一组一起执行一个任务的语句. 您可以把代码划分到不同的函数中.如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的. Scala 有函数和方法, ... 
- Scala:类,对象和特征(接口)
		http://blog.csdn.net/pipisorry/article/details/52902609 Scala类和对象 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象 ... 
- Scala的类层级讲解
		Scala的类层级 Scala里,每个类都继承自通用的名为Any的超类. 因为所有的类都是Any的子类,所以定义在Any中的方法就是"共同的"方法:它们可以被任何对象调用. Sca ... 
- Scala学习之路 (六)Scala的类、对象、继承、特质
		一.类 1.类的定义 scala语言中没有static成员存在,但是scala允许以某种方式去使用static成员这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员用 ... 
- Scala进阶之路-Scala特征类与unapply反向抽取
		Scala进阶之路-Scala特征类与unapply反向抽取 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala特征类分析 1>.Unit 答:用于定义返回值类型, ... 
- Scala的类继承
		Scala的类继承 extend Scala扩展类的方式和java一样使用extends关键字 class Employee extends Person { } 与java一样,可以在定义的子类重写 ... 
- 【scala】类的定义和单例对象
		一.类的定义 Scala类的定义跟JAVA中类的定义基本是一样的. 示例 class ChecksumAccumulator{ var sum = 0;//Scala默认关键字为public priv ... 
- Scala学习——类,继承,接口(中)
		基本类的使用:(初) package com.dtspark.scala.basics /** * trait是一个接口 * 接口的第一次继承用extends,多继承时用with * 多继承时,如果这 ... 
随机推荐
- Go学习笔记 - 关于Java、Python、Go编程思想的不同
			***看了两周七牛团队翻译的<Go语言程序设计>,基本上领略到了Go语言的魅力.学习一个语言,语法什么的任何人都是很容易学会,难就难在充分领略到这门编程语言的思想.*** ## 面向对象 ... 
- 推荐几个不错的h5游戏引擎
			http://www.phaser.io/examples http://www.cocos.com/ http://cn.cocos2d-x.org/tutorial/lists?id=30 coc ... 
- 【驱动】——seq_file使用指南
			seq_file只是在普通的文件read中加入了内核缓冲的功能,从而实现顺序多次遍历,读取大数据量的简单接口.seq_file一般只提供只读接口,在使用seq_file操作时,主要靠下述四个操作来完成 ... 
- sparkr脚本
			test <- function(){ print(1) } test() 脚本内为单独函数时 调用脚本不执行 所以要在脚本内调取特定函数 
- 8大排序算法总结 JS 实现
			//bubble sort ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 fun ... 
- [技术选型] CDH-Cloudera Distribution Hadoop
			hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的改变. Cloudera公司的发行版,我们将该版本称为CDH(Cloudera Distribut ... 
- 6、Qt Meta Object system 学习
			原文地址:http://blog.csdn.net/ilvu999/article/details/8049908 使用 meta object system 继承自 QOject 类定义中添加 Q_ ... 
- UPNP
			基本概念 UPnP 的应用范围非常大,以致足够可以实现许多现成的.新的及令人兴奋的方案,包括家庭自动化.打印.图片处理.音频 / 视频娱乐.厨房设备.汽车网络和公共集会场所的类似网络.它可以充分发挥 ... 
- (笔记)Linux延时及时间函数总结
			一. 基础知识1.时间类型.Linux下常用的时间类型有4个:time_t,struct timeval,struct timespec,struct tm.(1)time_t是一个长整型,一般用来表 ... 
- caffe中的错误与解决问题:
			1.在使用draw_net.py的时候,提示如下错误: AttributeError: 'google.protobuf.pyext._message.RepeatedScalarConta' obj ... 
