先看类的定义:
package com.test.scala.test import scala.beans.BeanProperty /** * scala 的类 */ //定义一个scala的类 class ScalaClass { private var count:Int=0; def incremet():Int={ count+=1 count } def value=incremet() //就这样定义一个age属性,它会自动生成get 与 set 方法,age对应的get方法为 对象.age,set方法为 对象age= 赋值即可。 //这个只是针对var 定义的字段 var age=23; //如果是val定义的字段,那么它只有get方法,如: val hellworld="hellowold"; private[this] var b=9;//这代码可以限制对象访问 //如果你想与javabean相互操作,就采用@BeanProperty,此属性会生成对应的get与set方法 @BeanProperty var sex="男"; var name="" //我们定义两个辅助构造器 def this(name:String){ this() this.name=name; } def this(name:String,age:Int){ this(name) this.age=age } //主构造器用类名来实现,如 class ScalaClass(aa:String){ println("主构造器打印的内容:"+aa) } }
package com.test.scala.test import scala.collection.mutable.ArrayBuffer class NetWork { class Member(val name:String){ val contancts=new ArrayBuffer[NetWork#Member] } val members=new ArrayBuffer[NetWork#Member] def join(name:String)={ val m=new Member(name) members+=m m } }
最后看类的生成:
package com.test.scala.test import java.nio.channels.NetworkChannel object ScalaClassTest { def main(args: Array[String]): Unit = { var test=new ScalaClass("sss") test.incremet(); println(test.incremet()); println(test.incremet()) println(test.value) //对象字段赋值与取值哈 test.age=33; println(test.age) test.setSex("女") println(test.getSex()) //定义一个时间 val time=new java.util.Date().getTime println(time) var chatter=new NetWork var fred=chatter.join("fred") var wills=chatter.join("wills") fred.contancts+=wills } }
时间: 2024-10-07 21:16:57