【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 * 多继承时,如果这 ...
随机推荐
- CAS (7) —— Mac下配置CAS 4.x的JPATicketRegistry(服务端)
CAS (7) -- Mac下配置CAS 4.x集群及JPATicketRegistry(服务端) tomcat版本: tomcat-8.0.29 jdk版本: jdk1.8.0_65 cas版本: ...
- Extjs js 产生Guid或者UUID
Ext.data.IdGenerator.get('uuid').generate() 结果:a9c4efb8-06c9-4c2e-8a70-bb36a69e053e 更多介绍:http://docs ...
- 数据採集之Web端上传文件到Hadoop HDFS
前言 近期在公司接到一个任务.是关于数据採集方面的. 需求主要有3个: 通过web端上传文件到HDFS; 通过日志採集的方式导入到HDFS; 将数据库DB的表数据导入到HDFS. 正好近期都有在这方面 ...
- HTML select 选中触发事件
$(function () { $("#cityidchange").change(function (data) { var cityid = $("#cityidch ...
- JDK工具(查看JVM参数、内存使用情况及分析等)
在JDK的bin目录下有很多命令行工具: 我们可以看到各个工具的体积基本上都稳定在27kb左右,这个不是JDK开发团队刻意为之的,而是因为这些工具大多数是jdk\lib\tools.jar类库的一 ...
- [zookeeper] Zookeeper伪分布式集群配置
参考配置:http://blog.csdn.net/clementad/article/details/48057059 注意要点: 启动时注意分别启动 bin/zkServer.sh start c ...
- 树莓派 NOOBS 安装系统
Raspberry Pi Foundation发布了一个名为“New Out of Box Software”(NOOBS)的工具,可以用来方便的安装系统,让我们尝试一下这个新的安装工具. 以我的树莓 ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)
转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟 ...
- 101 个 MySQL 的调节和优化的提示
英文原文:101 Tips to MySQL Tuning and Optimization MySQL是一个功能强大的开源数据库.随着越来越多的数据库驱动的应用程序,人们一直在推动MySQL发展到它 ...
- 【转】【MySQL】Mysql模糊查询like提速优化
在使用msyql进行模糊查询的时候,很自然的会用到like语句,通常情况下,在数据量小的时候,不容易看出查询的效率,但在数据量达到百万级,千万级的时候,查询的效率就很容易显现出来.这个时候查询的效率就 ...