1. package cn.scala_base.oop.scalaclass
  2. import scala.beans.BeanProperty;
  3. /**
  4. * scala中的field,类中定义的是方法,函数不依赖于类存在
  5. *
  6. */
  7. class Student {
  8. //没有修饰符的var变量,在编译时会被声明为private类型,但提供公共的get和set方法,即name,name_=,但调用赋值时采用 s.name=xxx的形式
  9. var name = "tele";
  10.  
  11. //error method name_= is defined twice
  12. /*def name_=(name:String) {
  13. this.name=name;
  14. }*/
  15.  
  16. }
  17.  
  18. class Student2 {
  19. //没有修饰符的val变量,在编译时会被声明为private类型,但只提供公共的get方法
  20. val name = "tele";
  21.  
  22. }
  23.  
  24. class Student3 {
  25. //使用private修饰的var变量.只有私有的get与set,如需访问,需要自定义get与set
  26. private var name = "tele";
  27.  
  28. def getName = name;
  29.  
  30. def setName(name: String) {
  31. this.name = name;
  32. }
  33.  
  34. }
  35.  
  36. class Student4 {
  37. //使用private[this]修饰的var变量,为对象所私有,同一个类的不同对象不能相互访问该属性,也就是对象隔离级别
  38. private[this] var name = "tele";
  39.  
  40. //error,虽然s也是Student4类型,但是无法在Student4类中获取s的name,当然,如果提供了自定义的get方法则可以访问到
  41. /*def getOtherName(s:Student4) {
  42. println(s.name);
  43. }*/
  44.  
  45. }
  46.  
  47. //生成java风格的get与set -> getName() setName(),当然还有name,name_=
  48. class Student5 {
  49. //使用占位符时必须声明参数类型
  50. @BeanProperty var name: String = _;
  51. }
  52.  
  53. //同上,参数在主构造器中
  54. class Student6(@BeanProperty var age: Int)
  55.  
  56. object Student {
  57.  
  58. def main(args: Array[String]): Unit = {
  59.  
  60. // Student
  61. val s1 = new Student();
  62. println(s1.name);
  63. //只能赋值为String类型,因为在Student中name别声明为String
  64. s1.name = "yeye";
  65. println(s1.name);
  66.  
  67. //Student2
  68. /* val s2 = new Student2();
  69. println(s2.name);
  70. //error
  71. // s2.name="yeey";*/
  72.  
  73. //Student3
  74. /* val s3 = new Student3();
  75. println(s3.getName);
  76.  
  77. s3.setName("yeye");
  78. println(s3.getName);*/
  79.  
  80. //Student5
  81. /*val s5 = new Student5();
  82. s5.setName("yyyy");
  83. println(s5.getName); */
  84.  
  85. //Student6
  86. val s6 = new Student6(15);
  87. println(s6.getAge());
  88.  
  89. }
  90. }

scala 中的修饰符的更多相关文章

  1. JAVA语言中的修饰符

    JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...

  2. Java中的 修饰符

    java中的修饰符分为类修饰符,字段修饰符,方法修饰符. 根据功能的不同,主要分为以下几种. 1.权限访问修饰符  访问权限的控制常被称为具体实现的隐藏 把数据和方法包进类中,以及具体实现的隐藏,常共 ...

  3. C/C++ 中 const 修饰符用法总结

    C/C++ 中 const 修饰符用法总结 在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考. const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家 ...

  4. Java中final修饰符深入研究

    一.开篇 本博客来自:http://www.cnblogs.com/yuananyun/ final修饰符是Java中比较简单常用的修饰符,同时也是一个被"误解"较多的修饰符.对很 ...

  5. vue中的修饰符

    Vue2.0学习笔记:Vue事件修饰符的使用   事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到methods中的方法中. 在Vue中,事件修饰符处理 ...

  6. Java中各种修饰符与访问修饰符

    Java中各种修饰符与访问修饰符 类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备 ...

  7. Java中访问修饰符public、private、protecte、default

    Java中访问修饰符public.private.protecte.default的意义讲解:public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属性以及方法不 仅 ...

  8. java中的修饰符和基本数据类型

    1.java中的修饰符 java中的修饰符主要是用来对类资源进行一个权限控制,上面表格表现的很清晰,无需多言. 2.java中的基本数据类型 java中的数据类型分为引用类型和基本类型.基本数据类型有 ...

  9. 对于Java中权限修饰符的理解

    老是把Java中权限修饰符给忘记,写一个博客加深印象吧 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类. 首先要知道包的概念,Java中一个包是指一个package下的所有文件. pr ...

随机推荐

  1. 【例题 7-4 UVA - 524】Prime Ring Problem

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 预处理出所有的答案. 打表输出. [代码] import java.util.ArrayList; import java.util ...

  2. mybatis中整合ehcache缓存框架的使用

    mybatis整合ehcache缓存框架的使用 mybaits的二级缓存是mapper范围级别,除了在SqlMapConfig.xml设置二级缓存的总开关,还要在具体的mapper.xml中开启二级缓 ...

  3. 【Codeforces Round #301 (Div. 2) E】Infinite Inversions

    [链接] 我是链接,点我呀:) [题意] 给你一个无限长的序列1,2,3,4... 然后给你n个操作. 每个操作ai,bi; 表示调换位置为ai和位置为bi的数的位置. (ai,bi<=10^9 ...

  4. 【CS Round #48 (Div. 2 only)】Dominant Free Sets

    [链接]h在这里写链接 [题意] 让你在n个点组成的集合里面选取不为空的集合s. 使得这里面的点没有出现某个点a和b,ax>=bx且ay>=by; 问你s的个数. [题解] 我们把这些点按 ...

  5. springMVC easyUI filebox 单个文件上传

    被这个文件上传坑到如今.还是自己技术问题,照着之前extjs项目那边的上传实例,愣是上传不了 到后面就查了下springMVC的文件上传,依照那样搞定了http://blog.csdn.net/jad ...

  6. html练习(3)

    1.这个小练习用到了css的四种选择器id选择器,类选择器,html选择器,通配符选择器. (1)假设一个元素中用到了各种选择器,而且选择器中的属性发生了冲突,则 优先级为id选择器>类选择器& ...

  7. PHP SPL标准库之数据结构栈(SplStack)介绍(基础array已经可以解决很多问题了,现在开始解决问题)

    PHP SPL标准库之数据结构栈(SplStack)介绍(基础array已经可以解决很多问题了,现在开始解决问题) 一.总结 SplStack就是继承双链表(SplDoublyLinkedList)实 ...

  8. VC和MATLAB混合开发经验总结

    作者:朱金灿 来源:http://blog.csdn.net/clever101 前期准备: 1.请确认机器中已经安装Matlab主程序或(MCR)MATLAB Compiler Runtime(具体 ...

  9. JS中给函数参数添加默认值(多看课程)

    JS中给函数参数添加默认值(多看课程) 一.总结 一句话总结:咋函数里面是可以很方便的获取调用函数的参数的,做个判断就好,应该有简便方法,看课程. 二.JS中给函数参数添加默认值 最近在Codewar ...

  10. 剪枝法观点下的旅行商问题(TSP)

    1. 构建基本的穷举搜索骨架 int n; int dst[100][100]; int best; const int INF = 987654321; // 初始状态下,path 存入第一节点,v ...