/*** class关键字类默认有一个空参构造器* 定义在类名称后面的构造器叫主构造器* 类的主构造器中的属性会定义成类的成员变量** 如果主构造器中成员属性没有val|var修饰的话,该属性不能被访问,相当于对外没有提供get方法* 如果成员属性使用var修饰的话,相当于对外提供了get 和set 方法* 如果成员属性使用val修饰的话,相当于对外提供了 get** 类的成员属性访问权限:*     如果类的主构造器中成员属性是private修饰的,它的set 和 get方法都是私有的,外部不能访问** 类的构造器访问权限*     在构造器前加修饰权限*     private 在主构造器之前,这说明该类的主构造器是私有的,外部类或者外部对象不能访问*     也适用于辅助构造器** 类的访问权限*     类的前面加上private[this] 标识这个类在当前包下都可见,当前包下的子包不可见*     类的前面加上private[报名] 表示这个类在当前包及其子包下都可见*/
private[day03] class Teacher (private var name: String, val age: Int) { //主构造器class Student {def say(): Unit ={println(name)}}var sex: String = _var prov: String = _// 定义个辅助构造器,def this()def this(name: String, age: Int, sex: String) = {// 在辅助构造器中必须先调用主构造器this(name, age)this.sex = sex}private def this(name: String, age: Int, sex: String, prov: String) = {this(name, age, sex) // 在上面一个辅助构造器中调用了主构造器this.prov = prov}
}
// object Teacher 叫类的伴生对象/*** 在伴生对象中可以访问类的私有成员方法和属性*/
object Teacher {def apply(name: String, age: Int): Teacher = {// 初始化工作new Teacher(name, age, "male", "TaiGuo")}def main(args: Array[String]): Unit = {val teacher = new Teacher("wang", 1, "xx", "xx")println(teacher.name)val taotaoTeacher = Teacher("小王", 0)println(taotaoTeacher.sex, taotaoTeacher.prov)}
}

Scala class相关推荐

  1. hadoop,spark,scala,flink 大数据分布式系统汇总

    20220314 https://shimo.im/docs/YcPW8YY3T6dT86dV/read 尚硅谷大数据文档资料 iceberg相当于对hive的读写,starrocks相当于对mysq ...

  2. 2021年大数据常用语言Scala(三十八):scala高级用法 隐式转换和隐式参数

    目录 隐式转换和隐式参数 隐式转换 自动导入隐式转换方法 隐式转换的时机 隐式参数 隐式转换和隐式参数 隐式转换和隐式参数是scala非常有特色的功能,也是Java等其他编程语言没有的功能.我们可以很 ...

  3. 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法

    目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...

  4. 2021年大数据常用语言Scala(三十六):scala高级用法 泛型

    目录 泛型 定义一个泛型方法 定义一个泛型类 上下界 协变.逆变.非变 非变 协变 逆变 泛型 scala和Java一样,类和特质.方法都可以支持泛型.我们在学习集合的时候,一般都会涉及到泛型. sc ...

  5. 2021年大数据常用语言Scala(三十五):scala高级用法 提取器(Extractor)

    目录 提取器(Extractor) 定义提取器 提取器(Extractor)  我们之前已经使用过scala中非常强大的模式匹配功能了,通过模式匹配,我们可以快速匹配样例类中的成员变量.例如: // ...

  6. 2021年大数据常用语言Scala(三十四):scala高级用法 异常处理

    目录 异常处理 捕获异常 抛出异常 异常处理 Scala中 无需在方法上声明异常 来看看下面一段代码. def main(args: Array[String]): Unit = {val i = 1 ...

  7. 2021年大数据常用语言Scala(三十一):scala面向对象 特质(trait)

    目录 特质(trait) 作为接口使用 定义具体的方法 定义具体方法和抽象方法 定义具体的字段和抽象的字段 实例对象混入trait trait调用链 trait的构造机制 trait继承class 特 ...

  8. 2021年大数据常用语言Scala(二十九):scala面向对象 单例对象

    目录 单例对象 定义object - 掌握 伴生对象 - 掌握 apply方法 - 掌握 main方法 单例对象 Scala中没有static关键字,但是它支持静态 如果要定义静态的东西,统统定义到o ...

  9. 2021年大数据常用语言Scala(二十八):scala面向对象 MAVEN依赖和类

    目录 scala面向对象 MAVEN依赖 类 - 掌握 创建类和对象 - 掌握 getter/setter - 了解 类的构造器 - 掌握 scala面向对象 MAVEN依赖 <?xml ver ...

  10. 2021年大数据常用语言Scala(二十七):函数式编程 聚合操作

    目录 聚合操作 聚合  reduce 定义 案例 折叠  fold 定义 案例 聚合操作 聚合操作,可以将一个列表中的数据合并为一个.这种操作经常用来统计分析中 聚合  reduce reduce表示 ...

最新文章

  1. c++ 小游戏_C/C++编程笔记:C语言写推箱子小游戏,大一学习C语言练手项目
  2. spring-boot的access日志格式修改
  3. 用Understand阅读 VS2010项目源码
  4. python中@staticmethod、@classmethod和实例方法
  5. mysql 5.7.17远端登陆_Mysql 5.7.17安装后登录mysql的教程
  6. CSS样式:position: absolute
  7. rust相框加载图片代码_Rust 能取代 Python,更好的实现神经网络?
  8. java程序启动命令_如何用java启动windows命令行程序
  9. MySQL笔记-InnoDB物理及逻辑存储结构
  10. 数据结构的简要介绍:堆栈如何工作
  11. vue中检测断网处理
  12. c/c++头文件之string.h、cstring与string的区别
  13. 自己工资自己算,策略设计模式(Strategy)
  14. 顾樵数学物理方法_圣彼得堡国立大学硕士研究生:物理与天文学
  15. Unity 清理注册表和临时文件
  16. js中的设计模式之单例模式
  17. 时间复杂度和空间复杂度
  18. mysql数据删除后无法恢复数据恢复_Mysql数据库delete删除后数据恢复报告
  19. 深度学习模型训练推理——基础环境搭建推荐博文查阅顺序【基础安装—认真帮大家整理了】——【专栏博文推荐学习顺序】
  20. 高省是什么?它跟社交电商APP有何区别?资深淘客为你揭秘

热门文章

  1. html自动跳转手机端,用JavaScript实现网站自动跳转电脑PC端与手机端不同页面
  2. matplotlib 设置标注方向_JQData + matplotlib 实现回测日志的交易细节可视化
  3. 重要更新|《Python程序设计开发宝典》例12-7代码有bug
  4. 1000道Python题库系列分享八(29道)
  5. php获取文件目录文件名,php获取路径中的文件名的方法有哪些
  6. 【数据结构----笔记4】插入排序算法之【折半插入排序算法】
  7. 5个python标准库及作用_零基础编程——Python标准库使用
  8. java 测试排序_java排序的几种方法 - 善待自己的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...
  9. crontab 每天凌晨12点定时器_每天摆摊到凌晨5点,94岁煎饼奶奶火了,一句话惊醒无数中学生!...
  10. python中if语句的实例_Python基础入门-IF语句