/**
* 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的更多相关文章

  1. Chapter05 流程控制(Process Control)

    目录 Chapter05 流程控制 5.1 顺序控制 5.2 分支控制 if-else 单分支基本语法: 双分支基础语法: 多分支基础语法 5.3 嵌套分支 5.4 switch分支结构 5.5 Fo ...

  2. Java核心技术 卷I chapter05 继承

    2017年4月10日19:41:44 仅仅用于打好基础 1. 在Java中,所有的继承都是公有继承,而没有C++中的私有继承和保护继承! 2.关键字super的使用方法: (1) 子类中想调用父类中的 ...

  3. Java 8函数编程轻松入门(四)方法引用

    C#中系统提供了许多IEnumerable的扩展方法.同样在Java 8中新引入了Collector类. 1.方法引用 定义: 简而言之:就是一个Lambda表达式.在Java 8中,我们我们会使用L ...

  4. Linux编译安装源码包的流程

    流程: 1.  下载并解压源码包2.  运行:configure3.  编译:make4.  安装:make install 编译时需要注意一个原则:不要在解压的包中直接执行./configure.m ...

  5. 5Hibernate配置及使用方法----青软S2SH(笔记)

    关于hibernate的简单配置,先看结构图,我们需要 1.还要弄一下需要的 jar包. 2.配置两个文件(hibernate配置文件和映射文件),不过映射文件可以用注解替代. 3.写一个pojo类, ...

  6. Epub基础知识介绍

    转载自:http://www.cnblogs.com/linlf03/archive/2011/12/13/2286218.html 一.什么是epub epub是一个完全开放和免费的电子书标准.它可 ...

  7. spring-表达式语言-SpEL【转】

    Spring表达式语言(Spring Expression Language)简称:SpEL 课程概要: Spring表达式语言的入门介绍 Spring表达式语言的操作范围 Spring表达式语言的运 ...

  8. django 模型

    一.project 与app之间的关系 1个project中可包含多个app eg:包含两个app的project的结构

  9. Python Django 数据库操作

    1. 建立app 在自己的工程项目目录下输入: python manage.py startapp myapp(你想建立的app名称) 建立一个叫myapp的app 这样,在你的工程项目目录下会出现一 ...

随机推荐

  1. bzoj 4631: 踩气球 线段树

    题目: Description 六一儿童节到了, SHUXK 被迫陪着M个熊孩子玩一个无聊的游戏:有N个盒子从左到右排成一排,第i个盒子里装着Ai个气球. SHUXK 要进行Q次操作,每次从某一个盒子 ...

  2. HTML a标签如何设置margin属性(转)

    很多同学发现对DIV有效的许多CSS属性对<a>或<p>标签都无效,好比说 <div style="margin-top:5px;"></ ...

  3. 汇编题目:在DOS下,按F1键后改变当前屏幕的显示颜色

    我们都知道int9中断是键盘的按键中断程序,按下键盘触发int9中断,不懂int9中断的请自己去百度查查说明和用法 利用中断任务安装一个新的int 9中断例程,功能:在DOS下,按F1键后改变当前屏幕 ...

  4. Operating System-进程/线程内部通信-竞争条件(Race Conditions)

    从本文开始介绍进程间的通信,进程间通信遇到的问题以及方式其实和线程之间通信是一致的,所以进程间通信的所有理论知识都可以用在线程上,接下来的系列文章都会以进程之间的通信为模版进行介绍,本文主要内容: 进 ...

  5. bzoj 2535 & bzoj 2109 航空管制 —— 贪心+拓扑序

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2535 https://www.lydsy.com/JudgeOnline/problem.p ...

  6. bzoj 4816 数字表格 —— 反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4816 推导过程同:http://www.cnblogs.com/zhouzhendong/p ...

  7. ECMAScript基本函数、概念区分总结

    1.使用Number()和parseInt() parseFloat()转换区别. 详见<JavaScript高级程序设计>P30 Number()可以针对任何类型. parseInt() ...

  8. I2C Bus

    概述: I²C 是Inter-Integrated Circuit的缩写,发音为"eye-squared cee" or "eye-two-cee" , 它是一 ...

  9. Linux根据端口查看进程

    若不知道具体目录,可以根据端口查找,查看端口22000的信息: sudo lsof -i:22000 RelaySvr 4322 root   13u  IPv4 75680495      0t0  ...

  10. wpf staticresource 是不允许向前引用(forward reference)的

    不允许向前引用(forward reference)在C/C++中中很常见,即在语法上,未定义变量.类之前,不能使用. 没想到wpf中的wpf staticresource也遵循这种规则.资源字典中, ...