scala 中的修饰符
2024-08-28 07:37:13
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()); }
}
最新文章
- QC在win7下不能访问QC服务器介绍
- IE中的条件注释(转载自网络)
- Service和Thread的关系及如何启用Service,如何停用Service
- 移动web前端之meta标签
- ORA-24550错误
- JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
- SharePoint 2010 最佳实践学习总结------第2章 SharePoint Windows PowerShell指南
- 原生javascript开发仿微信打飞机小游戏
- Codeforces Round #188 (Div. 2) B. Strings of Power 水题
- Codevs_1230_元素查找_(set/Hash)
- 3_Guess Fingers
- [Usaco2008 Jan]Cow Contest奶牛的比赛[神奇的FLOYD]
- 火狐html5拖拽 弹出新页面解决办法
- SpringMVC接收复杂对象
- linux文件、目录
- 深圳市共创力咨询CEO杨学明的最新演讲:互联网模式下的企业创新管理
- python__int 部分内部功能介绍
- 洛谷 P2915 【[USACO08NOV]奶牛混合起来Mixed Up Cows】
- POPUP_TO_CONFIRM的使用方法
- vue项目axios请求接口,后端代理请求接口404,问题出现在哪?
热门文章
- 洛谷 P1170 兔八哥与猎人
- ios 推断是qq,银行卡,手机号等等公用的方法。
- C#基础数据类型与字节数组(内存中的数据格式)相互转换(BitConverter 类)
- sshfs 通过ssh 挂载远程目录
- 【AtCoder Beginner Contest 074 D】Restoring Road Network
- 我的Go语言学习之旅三:Go语言中的for循环
- thinkphp5项目--企业单车网站(九)(加强复习啊)(花了那么多时间写的博客,不复习太浪费了)
- php websocket-网页实时聊天之PHP实现websocket(ajax长轮询和websocket都可以时间网络聊天室)
- js cookie创建读取删除函数封装
- Cocos2d-x使用Javascript开发js绑定C++&;lt;代码演示样例&;gt;