设为首页 加入收藏

TOP

Scala--类
2017-10-10 12:11:12 】 浏览:4561
Tags:Scala--

一、简单类和无参方法

  class Counter{
    private var value = 0
    def increment(){value += 1} //改变对象状态的方法 使用()
    def current = value //取值,不改变对象状态的方法, 不使用()
  }

  val c  = new Counter
  c.increment()
  println(c.current)  //直接获取值,不带()

结果

1

 

二、带getter和setter属性

//  class Persion{
//    var age = 0 //非private,可以使用getter和setter
// def current = age //如果age为private,可以自定义一个getter方法
// } class Persion{ private var privateAge = 0 def age = privateAge //getter 方法 age def age_=(newAge:Int) { //setter 方法 age_= if(newAge>privateAge) privateAge = newAge } } val f = new Persion f.age = 30 f.age = 20 println(f.age)

结果

30

 

三、对象私有字段

 

 

 

四、Bean属性

  import scala.beans.BeanProperty
  class Persion{
    @BeanProperty var age = 0
  }

  val p = new Persion
  p.setAge(10)
  println(p.getAge)

结果

10

 

五、辅助构造器

  class Persion{
    private var age = 0
    private var name = ""

    def this(name:String){   //辅助构造器
      this()         //调用主构造器
      this.name = name
    }

    def this(name:String,age:Int){ //辅助构造器
      this(name)     //调用辅助构造器
      this.age = age
    }
    
  }
  val p = new Persion          //主构造器
  val p1 = new Persion("Tom")    //辅助构造器
  val p2 = new Persion("Tom",10) //辅助构造器

 

六、主构造器

 

  class Persion(val name:String, val age:Int){ //主构造器的参数直接放置在类名之后
    println("Hi") //主构造器会执行类定义中的所有语句
  }

  val p = new Persion("Tom",10)

 

七、嵌套类

 

参考《快学Scala》

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Scala--继承 下一篇Scala--映射和元组

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目