Scala类中的get与set
在scala类中get和set使用有以下几种:
1. var foo: Scala自动合成一个getter和一个setter
2. val foo: Scala自动合成一个getter
scala中var用于定义一个可变量, val定义一个常量。
所以在1中,当我们定义1个变量foo时候,会自动有一个默认的get和set方法。
在2中,由于val是常量,所以只有一个get方法, val常量在定义的时候需要赋值,并且不可更改。
3. 人工定义foo和foo_=方法
在scala中get和set的定义并不是像java中的getXxx和setXxx, 而是foo和foo_
例如下面的例子
class Person {
private var privateAge =0 // 变成私有并改名
def foo = privateAge //类似java的get方法
def foo_= (newValue: Int) { //类似java的set方法
if (newValue > privateAge)
privateAge=newValue // 不能变年轻
}
}
4. 人工定义foo方法
Scala类中的get与set的更多相关文章
- Scala类基础
最近在开始学习Scala,本篇文章我们来讲解一下Scala中类的使用 class Counter { var defaultValue = 0 val valValue = 0 private var ...
- Scala 类和对象
Scala class: Scala 源文件中可以有很多类(class),这些类默认都是Public的,public是Scala的默认访问级别.在Scala中,声明一个未用priavate修饰的字段 ...
- Scala类的构造器与访问器
1.构造器 在Scala中,每个类都有一个主构造器.主构造器与类的定义交织在一起,如下: class Person ( private var _name: String, private var _ ...
- Scala类与对象
类简介 简介 类是对象的蓝图.一旦你定义了类,就可以用关键字new根据类的蓝图创建对象.在类的定义里,可以放置字段和方法,这些被笼统地称为成员.对于字段,不管是val还是var定义的,都是指向对象的变 ...
- Scala的类中定义内部类实战
scala独特之处在于可以在类中定义内部类,起到对外屏蔽作用. 类中默认都是public权限.后面将讲解如何引入接口,scala中的接口与java点区别.特质/接口(Trait)
- scala中隐式转换之隐式转换调用类中本不存在的方法
/** * Created by root * Description : 隐式转换调用类中本不存在的方法 */ class Person(name : String){ def getPersonN ...
- Scala类型参数中协变(+)、逆变(-)、类型上界(<:)和类型下界(>:)的使用
转自:http://fineqtbull.iteye.com/blog/477994#bc2364938 有位je上的同学来短信向我问起了Scala类型参数中协变.逆变.类型上界和类型下界的使用方法和 ...
- Spark记录-Scala类和对象
本章将介绍如何在Scala编程中使用类和对象.类是对象的蓝图(或叫模板).定义一个类后,可以使用关键字new来创建一个类的对象. 通过对象可以使用定义的类的所有功能. 下面的图通过一个包含成员变量(n ...
- Kotlin操作符重载:把标准操作加入到任何类中(KAD 17)
作者:Antonio Leiva 时间:Mar 21, 2017 原文链接:https://antonioleiva.com/operator-overload-kotlin/ 就像其他每种语言一样, ...
随机推荐
- 已知m和n是两个整数,并且m^2+mn+n^2能被9整除,试证m,n都能被3整除。
引证:m,n都是整数,m2=3n,求证m是3的倍数. 引证证明:(反证法)假设m并非3的倍数,那么m2则不含因数3,则m2≠3n,这与已知条件相反. 所以,当m2=3n时,m必是3的倍数. 有了引证, ...
- (剑指Offer)面试题57:删除链表中的重复结点
题目: 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后为 ...
- js看起来比较怪异的写法 (综合)
1.$(function() {}中$是什么意思? <script type="text/javascript"> $(function(){ $("#tre ...
- es6- ArrayBuffer
ArrayBuffer对象.TypedArray视图和DataView视图是 JavaScript 操作二进制数据的一个接口. 简单说: ArrayBuffer对象代表原始的二进制数据, TypedA ...
- 【Oracle】表空间相关集合
创建表空间 1.语法 CREATE [SMALLFILE/BIGFILE] TABLESPACE tablespace_nameDATAFILE '/path/filename' SIZE num[k ...
- LoadRunner 录制 mobile
方法一:本地安装安卓模拟器,用LR选择模拟器录制方式录制 方法二:手机真机需要root,可以在电脑上下载一键root工具(如卓大师),然后手机和电脑用数据线连接,然后root. 在手机上运行 Mobi ...
- Linux环境下的make和makefile详解
无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令.不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install.利用make工具,我们可以将大型 ...
- Ubuntu 14.04安装配置NFS
(一)安装NFS服务器 sudo apt-get install nfs-kernel-server sudo apt-get install nfs-common(在安装nsf-kernel-se ...
- Mosquitto----服务器日志
客户端连接日志 1403334375: New connection from 121.201.8.163 on port 1883. 1403334375: New client connected ...
- C# 类型转换,序列化
string转byte[]: byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str ); byte[]转string: stri ...