博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scala getter and setter
阅读量:5218 次
发布时间:2019-06-14

本文共 1561 字,大约阅读时间需要 5 分钟。

package exp {    object Main {        def main(args: Array[String]): Unit = {            B.name ="Fred";            println(B.getName())        }       }              class A {            private var n: String = null;            val getName = () => this.n; // println(a.getName); 返回
对象或类用val 定义的方法不能省略括号否则返回函数本身 val setName = (x: String) => this.n = x; //对象或类用val定义的方法如果有参数,省略点号和参数的括号是可以的 val updateName: String => Unit = x => this.n = x; //getter setter 属性定义必须这么做,方法定义可以用上面的def val 等各种方法 def name = this.n; def name_=(x: String) = this.n = x; //或 def name_= : String=>Unit = x => this.n = x; } //object 相当于java中的静态方法,其实是用class 的单例静态对象实现的,所以可以继承java的类,但是object不能被继承了 object B extends A; //object C extends B -> not found:Type B }

   抽象 val 只生成抽象getter,抽象var生成抽象的getter和setter

trait AbstractTime{    val hour:Int;    var minute:Int;}

   生成的java代码如下  

public interface AbstractTime{    public abstract int hour();    public abstract int minute();    public abstract void minute_$eq(int i);}

  

trait TRat    {        val n:Int;        val d:Int;        val n_d = n/d; //lazy val n_d = n/d;    }        object Main {        def main(args: Array[String]): Unit = {            val x = new {val n=20; val d=5} with TRat; //new TRat{val n=20; val d=5};              //如果这么构造的话,两个值的匿名类结构体对象在构造TRat匿名类后构造,            //因此n/d将出现div zero异常,除非 val n_d 设置为lazy val 或 def            println(x.n_d);        }    }

  

转载于:https://www.cnblogs.com/scala/p/3691682.html

你可能感兴趣的文章
windows自带的可生成各种数据库连接字符串工具打开方法
查看>>
Python命名规范
查看>>
滚动条
查看>>
程序员的自我修养九Windows下的动态链接
查看>>
Codeforces Round #361 (Div. 2)
查看>>
细说WebSocket - Node篇
查看>>
jenkins+testNG
查看>>
[洛谷1485] 火枪打怪
查看>>
PAT B1018.锤子剪刀布(20)
查看>>
Extjs控件之 grid打印功能
查看>>
枚举类型(不常用)递归
查看>>
ETL
查看>>
Tomcat源码分析(六)--日志记录器和国际化
查看>>
minggw 安装
查看>>
Jquery操作cookie,实现简单的记住用户名的操作
查看>>
[BZOJ1196][HNOI2006]公路修建问题 二分答案+最小生成树
查看>>
PHP基础入门(二)
查看>>
[Luogu P3119] [USACO15JAN]草鉴定Grass Cownoisseur (缩点+图上DP)
查看>>
【原创】大数据基础之Zookeeper(4)应用场景
查看>>
18款在线代码片段测试工具
查看>>