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()); }
}

最新文章

  1. QC在win7下不能访问QC服务器介绍
  2. IE中的条件注释(转载自网络)
  3. Service和Thread的关系及如何启用Service,如何停用Service
  4. 移动web前端之meta标签
  5. ORA-24550错误
  6. JDBC连接执行 MySQL 存储过程报权限错误:User does not have access to metadata required to determine stored procedure parameter types. If rights can not be granted,
  7. SharePoint 2010 最佳实践学习总结------第2章 SharePoint Windows PowerShell指南
  8. 原生javascript开发仿微信打飞机小游戏
  9. Codeforces Round #188 (Div. 2) B. Strings of Power 水题
  10. Codevs_1230_元素查找_(set/Hash)
  11. 3_Guess Fingers
  12. [Usaco2008 Jan]Cow Contest奶牛的比赛[神奇的FLOYD]
  13. 火狐html5拖拽 弹出新页面解决办法
  14. SpringMVC接收复杂对象
  15. linux文件、目录
  16. 深圳市共创力咨询CEO杨学明的最新演讲:互联网模式下的企业创新管理
  17. python__int 部分内部功能介绍
  18. 洛谷 P2915 【[USACO08NOV]奶牛混合起来Mixed Up Cows】
  19. POPUP_TO_CONFIRM的使用方法
  20. vue项目axios请求接口,后端代理请求接口404,问题出现在哪?

热门文章

  1. 洛谷 P1170 兔八哥与猎人
  2. ios 推断是qq,银行卡,手机号等等公用的方法。
  3. C#基础数据类型与字节数组(内存中的数据格式)相互转换(BitConverter 类)
  4. sshfs 通过ssh 挂载远程目录
  5. 【AtCoder Beginner Contest 074 D】Restoring Road Network
  6. 我的Go语言学习之旅三:Go语言中的for循环
  7. thinkphp5项目--企业单车网站(九)(加强复习啊)(花了那么多时间写的博客,不复习太浪费了)
  8. php websocket-网页实时聊天之PHP实现websocket(ajax长轮询和websocket都可以时间网络聊天室)
  9. js cookie创建读取删除函数封装
  10. Cocos2d-x使用Javascript开发js绑定C++<代码演示样例>