Dt大数据梦工厂王家林老师 Scala实战详解之第7讲 Scala类的属性和对象私有字段实战详解
来源:互联网 发布:udp编程bind函数的作用 编辑:程序博客网 时间:2024/05/21 14:00
package com.dt.scalaInAction.demo_007class Person { //class classname 默认为public级别的 private var age = 0 //与Java不同 是这种方式定义必须赋值,否则编译报错 完全的定义为:private[this] var age: Int def increment(){age += 1} def current = age //等价于def current() = age 没有参数可以省略括号}class Student { /** * private[this] var age: Int * * 在Java中定义private私有属性需要手动生成的getter和setter方法 * 在Scala中 这种定义了private[this] var age: Int的属性会自动生成getter/setter */ var age = 0 //这种var age = 0 的原型为private[this] var age: Int 并且会自动生成getter/setter private var ageA = 0 //这种private var ageA = 0 的原型仍然是private[this] 但是不会生成getter/setter private[this] var ageB = 0 //对象私有字段 限定这个属性为当前对象自己的方法能够访问的 不能被当前对象的类的方式去使用 /** * 这种val的声明方式为只读模式 其原型为 private[this] val name: String * 会自动生成final类型的私有字段 和getter方法 不会生成setter方法 */ val name = "Scala" def isYonger(other : Student) = ageA < other.ageA //如果将ageA定义为 private[this] var ageA = 0 编辑出错}/** * Scala类的属性和对象私有字段实战详解 */object HelloOOP { def main(args: Array[String]): Unit = { var person = new Person() person.increment() println(person.current) //1 //var stu = new Student //等价于 var stu = new Student() /** * getter * stu.age 调用的是age私有属性的getter方法 并不是直接访问age属性 * 鼠标上移有提示为def age: Int */ //println(stu.age) //0 /** * setter * stu.age = 10 这种赋值方式不是将10赋值给age属性,而且age为private级别的 也无法访问 * 其实是调用了setter方法 * def age_=(x$1: Int): Unit * */ //stu.age = 10 //println(stu.age) var stu = new Student /** * 这种访问方式是直接访问name属性 */ //stu.name = "Hadoop" //编译报错 因为是只读模式 println(stu.name) //Scala }}
以上内容是从王家林老师DT大数据课程第7讲的学习笔记和个人整理。
DT大数据微信公众账号:DT_Spark
王家林老师QQ:1740415547
王家林老师微信号:18610086859
第7讲视频网站地址:http://pan.baidu.com/s/1eQyDBoe
0 0
- Dt大数据梦工厂王家林老师 Scala实战详解之第7讲 Scala类的属性和对象私有字段实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第9讲 Scala的内部类实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第12讲 Scala中的继承:超类的构造、重写字段、重写方法代码实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第13讲 抽象类、抽象字段、抽象方法
- Dt大数据梦工厂王家林老师 Scala实战详解之第5讲 Scala数组操作实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第11讲 Scala中的apply实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第8讲 Scala主构造器、私有构造器、构造器重载实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第14讲 Scala中作为接口的trait、在对象中混入trait代码实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第10讲 Scala单例对象、伴生对象实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第17讲 Scala中包、类、对象、成员、伴生类、伴生对象访问权限
- Dt大数据梦工厂王家林老师 Scala实战详解之第16讲 Scala中包的定义、包对象、包的引用、包的隐式引用
- Dt大数据梦工厂王家林老师 Scala实战详解之第6讲 Map、Tuple、Zip实战解析
- Dt大数据梦工厂王家林老师 Scala实战详解之第4讲 For与Function进阶实战、Lazy的使用
- Dt大数据梦工厂王家林老师 Scala实战详解之 第2讲Scala函数定义,流程控制,异常处理入门实战
- Scala 深入浅出实战经典 第7讲:Scala类的属性和对象私有字段实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第15讲 Scala多重继承、多重继承构造器执行顺序及AOP实现
- 第7讲 Scala类的属性和对象私有字段实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第3讲 Tuple、Array、Map与文件操作入门实战
- Dt大数据梦工厂王家林老师 Scala实战详解之第5讲 Scala数组操作实战详解
- html表单
- Dt大数据梦工厂王家林老师 Scala实战详解之第6讲 Map、Tuple、Zip实战解析
- pushViewController 与 presentViewController 与 TabBarController 之间切换VC
- flume入门教程
- Dt大数据梦工厂王家林老师 Scala实战详解之第7讲 Scala类的属性和对象私有字段实战详解
- 表格属性
- XHTML表单日记
- Dt大数据梦工厂王家林老师 Scala实战详解之第8讲 Scala主构造器、私有构造器、构造器重载实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第9讲 Scala的内部类实战详解
- 中缀表达式转换成前缀表达式和后缀表达式的极其简单方法
- Dt大数据梦工厂王家林老师 Scala实战详解之第10讲 Scala单例对象、伴生对象实战详解
- Dt大数据梦工厂王家林老师 Scala实战详解之第11讲 Scala中的apply实战详解
- 数学建模一二