Scala基础:类和构造器

package com.zy.scala.cls/*** 在 Scala 中,类并不用声明为 public 类型的。* Scala 源文件中可以包含多个类,所有这些类都具有共有可见性。*/
class Person {//用 val 修饰的变量是可读属性,有 getter 但没有 setter(相当与 Java 中用 final 修饰的变量)val id = "9527"//用 var 修饰的变量都既有 getter,又有 settervar age: Int = 18//类私有字段,只能在类的内部使用或者伴生对象中访问private var name: String = "唐伯虎"//类私有字段,访问权限更加严格的,该字段在当前类中被访问//在伴生对象里面也不可以访问private[this] var pet = "小强"
}//伴生对象(这个名字和类名相同,叫伴生对象)
object Person {def main(args: Array[String]): Unit = {val p = new Person//如果是下面的修改,发现下面有红线,说明 val 类型的不支持重新赋值,但是可以获取到值//p.id = "123"
    println(p.id)//打印 age
    println(p.age)//打印 name,伴生对象中可以在访问 private 变量
    println(p.name)//由于 pet 字段用 private[this]修饰,伴生对象中访问不到 pet 变量//p.pet(访问不到)
  }
}

构造器

package com.zy.scala.cls/*** 每个类都有主构造器,主构造器的参数直接放置类名后面,与类交织在一起*/
class Student(val name: String, var age: Int) {//主构造器会执行类定义的所有语句println("执行主构造器")private var gender = "male"def this(name: String, age: Int, gender: String) {//每个辅助构造器执行必须以主构造器或者其他辅助构造器的调用开始this(name, age)println("执行辅助构造器")this.gender = gender}
}object Student {def main(args: Array[String]): Unit = {val s1 = new Student("zhangsan", 20)val s2 = new Student("zhangsan", 20, "female")}
}

posted @ 2018-10-15 10:37 青衫仗剑 阅读(...) 评论(...) 编辑 收藏

Scala基础:类和构造器相关推荐

  1. scala面向对象基础---类继承和特质

    一.类继承 传送门:Scala基础-类继承 Scala的类继承 调用超类的构造方法 重写超类的成员 3.1.不被继承的成员 3.2.不可重写的成员 3.3.无参方法与字段 子类型多态与动态绑定 抽象类 ...

  2. 大数据入门第二十天——scala入门(二)scala基础02

    一. 类.对象.继承.特质 1.类 Scala的类与Java.C++的类比起来更简洁 定义: package com.jiangbei //在Scala中,类并不用声明为public. //Scala ...

  3. 23篇大数据系列(二)scala基础知识全集(史上最全,建议收藏)

    作者简介: 蓝桥签约作者.大数据&Python领域优质创作者.管理多个大数据技术群,帮助大学生就业和初级程序员解决工作难题. 我的使命与愿景:持续稳定输出,赋能中国技术社区蓬勃发展! 大数据系 ...

  4. Scala基础语法学习

    目录 一.变量 二.数据类型 三.scala中的条件表达式 四.循环 五.while循环 六.方法 6.函数 7.数组 (1).定长数组 (2).变长数组 (3).遍历数组 (4).数组常用操作 8. ...

  5. Scala(三) 类和特质

    一:基础语法 一个.scala文件可以定义多个类 一个.scala文件可以定义多个类(class.object.trait), class和object定义的类名可以一直,如果object的类名和cl ...

  6. Scala基础教程--06--类与对象的详解

    Scala基础教程–06–类与对象的详解 章节目标 掌握类和对象的定义 掌握访问修饰符和构造器的用法 掌握main方法的实现形式 掌握伴生对象的使用 掌握定义工具类的案例 1. 类和对象 Scala是 ...

  7. Scala基础教程(一):简介、环境安装

    Scala基础语法 如果有很好的了解Java语言,那么将很容易学习Scala. Scala和Java间的最大语法的区别在于;行结束符是可选的.考虑Scala程序它可以被定义为通过调用彼此方法进行通信的 ...

  8. Scala学习之路 (六)Scala的类、对象、继承、特质

    一.类 1.类的定义 scala语言中没有static成员存在,但是scala允许以某种方式去使用static成员 这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员 ...

  9. C#基础--类/接口/成员修饰符,多态、重载、重写,静态和非静态

    C#基础--类/接口/成员修饰符,多态.重载.重写,静态和非静态 类/接口/成员修饰符 C#修饰符---接口: 接口默认访问符是internal 接口的成员默认访问修饰符是public C#修饰符-- ...

  10. Scala教程之:Scala基础

    文章目录 常量 变量 代码块 函数 方法 类 case类 对象 trait main方法 这篇文章我们大概过一下Scala的基础概念,后面的文章我们会有更详细的讲解Scala的具体内容. 常量 在Sc ...

最新文章

  1. php定时任务为什么不好写,php解决crontab定时任务不能写入文件问题的方法分析...
  2. 如何查看oracle 查版本号
  3. 31. 提取text.txt和text2.txt的文件内容,进行文本等号以后求和
  4. Eclipse导入项目常见问题----jdk版本问题(有个红色感叹号)01
  5. 微软:本周三个安全更新 暂不会修正Excel漏洞
  6. linux服务器p2v,使用 Linux dd 命令实现 P2V 或 V2V
  7. 自动轮播与按钮的联动
  8. 力扣——在排序数组中查找元素的第一个和最后一个位置
  9. U盘中病毒了,丢失的文件能用EasyRecovery恢复吗?
  10. 通过eslint统一前端IDE的编码风格,避免git冲突
  11. xp 计算机配置,怎么查看WindowsXP系统电脑配置?
  12. Windows10解决耳机被识别为扬声器问题
  13. pcsc linux,Linux 下集成 pcsc ccid libusb
  14. 目标检测中文类别--在图片中添加汉字
  15. 《Recurrent Chunking Mechanisms for Long-Text Machine Reading Comprehension》ACL2020论文阅读
  16. 送给大一新生的一些话
  17. 你有花生我有酒,一本学道看一天(一)
  18. JAVA逻辑推理题1-谁是凶手
  19. Mathcad求解一元二次方程
  20. RocketMQ 容错策略 解析——图解、源码级解析

热门文章

  1. 实验中应该遵循的几个原则
  2. python实验总结与分析_【利用python进行数据分析】利用初中物理实验 培养学生发散思维...
  3. TiDB-explain详解
  4. Android开发-API指南-uses-feature(1)
  5. iOS应用内购常见问题及注意事项
  6. zencart模板分析
  7. becon帧 wifi_beacon帧
  8. Emerging Properties in Self-Supervised Vision Transformers(2021)
  9. 文本文件单词的检索与计数c语言,文本文件单词的检索与计数
  10. 搜狗输入法取消英文空格确认