/**
* 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. 背包搜索--LH

    题解:搜索 meet in the middle 先搜一半,假设某个状态的体积是p,那么就要从另一半里找到体积小于 等于v-p 价值最大的状态.二分+前缀和. 代码:不会前缀和,暴力瞎写的.没有评测的 ...

  2. Unity中的ShaderToys——将大神们写的shader搬到unity中来吧

    http://lib.csdn.net/article/unity3d/38699 这篇文章翻译自国外的一篇文章(这里是原文链接),正在使用unity的你是否在shader toy上发现很多牛逼哄哄的 ...

  3. 白话算法(6) 散列表(Hash Table)从理论到实用(中)

    不用链接法,还有别的方法能处理碰撞吗?扪心自问,我不敢问这个问题.链接法如此的自然.直接,以至于我不敢相信还有别的(甚至是更好的)方法.推动科技进步的人,永远是那些敢于问出比外行更天真.更外行的问题, ...

  4. nodejs调试:node-inspector

    基于Chrome浏览器的调试器 既然我们可以通过V8的调试插件来调试,那是否也可以借用Chrome浏览器的JavaScript调试器来调试呢?node-inspector模块提供了这样一种可能.我们需 ...

  5. BZOJ1012:[JSOI2008]最大数

    浅谈栈:https://www.cnblogs.com/AKMer/p/10278222.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id ...

  6. 彻底删除kafka下面的topic

    如果只是用kafka-topics.sh的delete命令删除topic,会有两种情况: 如果当前topic没有使用过即没有传输过信息:可以彻底删除 如果当前topic有使用过即有过传输过信息:并没有 ...

  7. 通过 命令提示符(cmd.exe)连接 Oracle 数据库

    通过IP 连接数据库: sqlplus userName/userPassword@//IP:port/SID 例:sqlplus testuser/123456@//192.168.0.1:1521 ...

  8. 排序----demo----

    排序1---冒泡法: 单向冒泡排序的基本原理就是:对于给定的n个数据,从第一个数据开始一次对相邻的两个数据进行比较,当前面的数据大于后面的数据时,交换位置,进行一轮比较和换位后,n个数据中最大的那个被 ...

  9. ES6学习之Set和Map

    一.Set 1.Set 定义:Set类似于数组,但成员的值都是唯一的,没有重复的值 let s = new Set([1,2,3,4,5,2,4]); //Set { 1, 2, 3, 4, 5 } ...

  10. Tomcat 服务器详解

    工具/原料 1.JDK:版本为jdk-7-windows-i586.exe  下载地址   http://www.oracle.com/technetwork/java/javase/download ...