chapter05
/**
* Created by EX-CHENZECHAO001 on 2018-03-29.
*/
class Chapter05 { } // 类
// 类中的字段自动带有getter方法和setter方法 // 5.1 简单类和无参方法
class Counter {
private var value = 0 // 必须初始化字段
def increment(): Unit ={ // 方法默认是仅有的
value += 1
}
def current() = value // 用时可用()也可不用counter.current()
def currentNew = value // 用时不可用() counter.currentNew
} // 5.2 带getter和setter的属性
class Person {
var age = 0
} object Person {
val person = new Person()
println(person.age) // getter方法
person.age = 10
println(person.age) // getter方法
} class Person2 {
private var privateAge = 0 // 变成私有并改名
def age = privateAge def age_=(newValue: Int): Unit = {
if (newValue > privateAge) {
privateAge = newValue
}
}
} object Person2 {
val person2 = new Person2()
person2.age_=(20)
println(person2.age)
person2.age_=(11)
println(person2.age)
} // 如果字段是私有的,则getter和setter方法也是私有的
// 如果字段是val,则只有getter方法被生成
// 如果不需要任何getter或setter,可以将字段声明为private[this] // 5.3 只带getter的属性
class Message {
// scala会生成一个私有的final字段和一个getter方法,但没有setter方法
val timeStamp = new java.util.Date().getTime // 实现属性的4个选择
// var foo: Scala自动合成一个getter和setter
// val foo: Scala自动合成一个getter
// 由你定义foo和foo_=方法
// 由你来定义foo方法 } object Chapter05 { def main(args: Array[String]): Unit = {
val counter = new Counter()
counter.increment()
counter.increment()
counter.increment()
println(counter.current())
println(counter.currentNew) Person2
} }
chapter05的更多相关文章
- Chapter05 流程控制(Process Control)
目录 Chapter05 流程控制 5.1 顺序控制 5.2 分支控制 if-else 单分支基本语法: 双分支基础语法: 多分支基础语法 5.3 嵌套分支 5.4 switch分支结构 5.5 Fo ...
- Java核心技术 卷I chapter05 继承
2017年4月10日19:41:44 仅仅用于打好基础 1. 在Java中,所有的继承都是公有继承,而没有C++中的私有继承和保护继承! 2.关键字super的使用方法: (1) 子类中想调用父类中的 ...
- Java 8函数编程轻松入门(四)方法引用
C#中系统提供了许多IEnumerable的扩展方法.同样在Java 8中新引入了Collector类. 1.方法引用 定义: 简而言之:就是一个Lambda表达式.在Java 8中,我们我们会使用L ...
- Linux编译安装源码包的流程
流程: 1. 下载并解压源码包2. 运行:configure3. 编译:make4. 安装:make install 编译时需要注意一个原则:不要在解压的包中直接执行./configure.m ...
- 5Hibernate配置及使用方法----青软S2SH(笔记)
关于hibernate的简单配置,先看结构图,我们需要 1.还要弄一下需要的 jar包. 2.配置两个文件(hibernate配置文件和映射文件),不过映射文件可以用注解替代. 3.写一个pojo类, ...
- Epub基础知识介绍
转载自:http://www.cnblogs.com/linlf03/archive/2011/12/13/2286218.html 一.什么是epub epub是一个完全开放和免费的电子书标准.它可 ...
- spring-表达式语言-SpEL【转】
Spring表达式语言(Spring Expression Language)简称:SpEL 课程概要: Spring表达式语言的入门介绍 Spring表达式语言的操作范围 Spring表达式语言的运 ...
- django 模型
一.project 与app之间的关系 1个project中可包含多个app eg:包含两个app的project的结构
- Python Django 数据库操作
1. 建立app 在自己的工程项目目录下输入: python manage.py startapp myapp(你想建立的app名称) 建立一个叫myapp的app 这样,在你的工程项目目录下会出现一 ...
随机推荐
- bzoj 4631: 踩气球 线段树
题目: Description 六一儿童节到了, SHUXK 被迫陪着M个熊孩子玩一个无聊的游戏:有N个盒子从左到右排成一排,第i个盒子里装着Ai个气球. SHUXK 要进行Q次操作,每次从某一个盒子 ...
- HTML a标签如何设置margin属性(转)
很多同学发现对DIV有效的许多CSS属性对<a>或<p>标签都无效,好比说 <div style="margin-top:5px;"></ ...
- 汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色
我们都知道int9中断是键盘的按键中断程序,按下键盘触发int9中断,不懂int9中断的请自己去百度查查说明和用法 利用中断任务安装一个新的int 9中断例程,功能:在DOS下,按F1键后改变当前屏幕 ...
- Operating System-进程/线程内部通信-竞争条件(Race Conditions)
从本文开始介绍进程间的通信,进程间通信遇到的问题以及方式其实和线程之间通信是一致的,所以进程间通信的所有理论知识都可以用在线程上,接下来的系列文章都会以进程之间的通信为模版进行介绍,本文主要内容: 进 ...
- bzoj 2535 & bzoj 2109 航空管制 —— 贪心+拓扑序
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2535 https://www.lydsy.com/JudgeOnline/problem.p ...
- bzoj 4816 数字表格 —— 反演
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4816 推导过程同:http://www.cnblogs.com/zhouzhendong/p ...
- ECMAScript基本函数、概念区分总结
1.使用Number()和parseInt() parseFloat()转换区别. 详见<JavaScript高级程序设计>P30 Number()可以针对任何类型. parseInt() ...
- I2C Bus
概述: I²C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一 ...
- Linux根据端口查看进程
若不知道具体目录,可以根据端口查找,查看端口22000的信息: sudo lsof -i:22000 RelaySvr 4322 root 13u IPv4 75680495 0t0 ...
- wpf staticresource 是不允许向前引用(forward reference)的
不允许向前引用(forward reference)在C/C++中中很常见,即在语法上,未定义变量.类之前,不能使用. 没想到wpf中的wpf staticresource也遵循这种规则.资源字典中, ...