首页 > 代码库 > scala的Class

scala的Class

先看类的定义:

package com.test.scala.testimport 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.testimport scala.collection.mutable.ArrayBufferclass 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.testimport java.nio.channels.NetworkChannelobject 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      }  }

 

scala的Class