scala 中的修饰符
package cn.scala_base.oop.scalaclass
import scala.beans.BeanProperty;
/**
* scala中的field,类中定义的是方法,函数不依赖于类存在
*
*/
class Student {
//没有修饰符的var变量,在编译时会被声明为private类型,但提供公共的get和set方法,即name,name_=,但调用赋值时采用 s.name=xxx的形式
var name = "tele"; //error method name_= is defined twice
/*def name_=(name:String) {
this.name=name;
}*/ } class Student2 {
//没有修饰符的val变量,在编译时会被声明为private类型,但只提供公共的get方法
val name = "tele"; } class Student3 {
//使用private修饰的var变量.只有私有的get与set,如需访问,需要自定义get与set
private var name = "tele"; def getName = name; def setName(name: String) {
this.name = name;
} } class Student4 {
//使用private[this]修饰的var变量,为对象所私有,同一个类的不同对象不能相互访问该属性,也就是对象隔离级别
private[this] var name = "tele"; //error,虽然s也是Student4类型,但是无法在Student4类中获取s的name,当然,如果提供了自定义的get方法则可以访问到
/*def getOtherName(s:Student4) {
println(s.name);
}*/ } //生成java风格的get与set -> getName() setName(),当然还有name,name_=
class Student5 {
//使用占位符时必须声明参数类型
@BeanProperty var name: String = _;
} //同上,参数在主构造器中
class Student6(@BeanProperty var age: Int) object Student { def main(args: Array[String]): Unit = { // Student
val s1 = new Student();
println(s1.name);
//只能赋值为String类型,因为在Student中name别声明为String
s1.name = "yeye";
println(s1.name); //Student2
/* val s2 = new Student2();
println(s2.name);
//error
// s2.name="yeey";*/ //Student3
/* val s3 = new Student3();
println(s3.getName); s3.setName("yeye");
println(s3.getName);*/ //Student5
/*val s5 = new Student5();
s5.setName("yyyy");
println(s5.getName); */ //Student6
val s6 = new Student6(15);
println(s6.getAge()); }
}
scala 中的修饰符的更多相关文章
- JAVA语言中的修饰符
JAVA语言中的修饰符 -----------------------------------------------01--------------------------------------- ...
- Java中的 修饰符
java中的修饰符分为类修饰符,字段修饰符,方法修饰符. 根据功能的不同,主要分为以下几种. 1.权限访问修饰符 访问权限的控制常被称为具体实现的隐藏 把数据和方法包进类中,以及具体实现的隐藏,常共 ...
- C/C++ 中 const 修饰符用法总结
C/C++ 中 const 修饰符用法总结 在这篇文章中,我总结了一些C/C++语言中的 const 修饰符的常见用法,供大家参考. const 的用法,也是技术性面试中常见的基础问题,希望能够帮大家 ...
- Java中final修饰符深入研究
一.开篇 本博客来自:http://www.cnblogs.com/yuananyun/ final修饰符是Java中比较简单常用的修饰符,同时也是一个被"误解"较多的修饰符.对很 ...
- vue中的修饰符
Vue2.0学习笔记:Vue事件修饰符的使用 事件处理 如果需要在内联语句处理器中访问原生DOM事件.可以使用特殊变量$event,把它传入到methods中的方法中. 在Vue中,事件修饰符处理 ...
- Java中各种修饰符与访问修饰符
Java中各种修饰符与访问修饰符 类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备 ...
- Java中访问修饰符public、private、protecte、default
Java中访问修饰符public.private.protecte.default的意义讲解:public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”.被其修饰的类.属性以及方法不 仅 ...
- java中的修饰符和基本数据类型
1.java中的修饰符 java中的修饰符主要是用来对类资源进行一个权限控制,上面表格表现的很清晰,无需多言. 2.java中的基本数据类型 java中的数据类型分为引用类型和基本类型.基本数据类型有 ...
- 对于Java中权限修饰符的理解
老是把Java中权限修饰符给忘记,写一个博客加深印象吧 权限分为四个作用域:当前类,同一个包,其他包的子类,其他包的类. 首先要知道包的概念,Java中一个包是指一个package下的所有文件. pr ...
随机推荐
- Java对ad操作
转载:http://blog.csdn.net/binyao02123202/article/details/18697953
- Eclipse导出Library
在工作中遇到开发SDK,记录下导出Library的过程. 1.导出 选中项目>属性>Android 配置Is library例如以下图: 选中项目>导出>JAR ...
- Java核心技术 卷Ⅰ 基础知识(5)
第11章 异常.断言.日志和调试 处理错误 异常分类 声明已检查异常 如何抛出异常 创建异常类 捕获异常 捕获多个异常 再次抛出异常与异常链 finally子句 带资源的try语句 分析堆栈跟踪元素 ...
- echarts+百度地图+vue 填坑记(一)(百度地图、鼠标移入移出标注,信息框会产生闪烁)
大概七月底开始实习,到现在经历了两个完整的项目(c2b). 因为开发时间紧,任务重,所以在开发过程踩到的坑都没时间去记录. 现在在开发一个某链运输监控系统,到了收尾阶段,有时间写博客了!开心! 一.鼠 ...
- pragma pack,字节对齐
关于字节对齐 pragma pack 一. 测试代码: // packTest.cpp : Defines the entry point for the console application. / ...
- 洛谷—— P1017 进制转换
https://www.luogu.org/problem/show?pid=1017#sub 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1) ...
- 安装后,挂载c盘失败
现象: 安装后,window C盘mount失败 错误内容如下: Error mounting: mount exited with exit code 13: ntfs_attr_pread_i: ...
- 从Unreal Engine 3到Unreal Engine 4
Unreal Engine 4公布好长好长时间了.直到近期才有时间细致去看一下. TimSweeney老大一句话"IF YOU LOVE SOMETHING, SET IT FREE&quo ...
- TF卡电压 SD卡引脚
//////////////////////////////////////////////////////////////////////////////////////////////////// ...
- Declarative Widgets is a QML plugin that adds Qt Widgets support to QML
05.04.2018 Nathan Collins 8 comments FacebookTwitterGoogle+LinkedInEmail Declarative Widgets is a ...