1. 程式人生 > >scala屬性的getter和setter方法

scala屬性的getter和setter方法

類的基本內容要點:
1、scala在定義欄位時使用var ,預設生成對應setter和getter方法
2、呼叫了scala的setter方法  對應的名稱money_=
3、呼叫了scala的gettter方法  對應的名稱就為欄位名稱money
4、當使用val定義欄位時,scala不在提供對應的setter方法
5、如果使用private修飾字段時 scala不在提供對應的setter和getter方法
6、@BeanProperty和private不能同時使用


在scala不在提供靜態欄位和靜態方法的功能
用object去實現
當class的名稱和物件的名稱相同時,把該物件叫做同名類的伴生物件
Object是一種型別,與class非常相似。   
Object可以提供java中的靜態欄位、靜態方法的功能。

class atm{

  
  var money = 0
  
}


object Test41 {
  def main(args: Array[String]): Unit = {
    /*
     * scala在定義欄位時使用var ,預設生成對應setter和getter方法
     */
     var c = new atm()
     //呼叫了scala的setter方法  對應的名稱money_=
     c.money_=(100)
     //呼叫了scala的gettter方法  對應的名稱就為欄位名稱money
     println(c.money)
     
//     c.setMoney(1000)
//     println(c.getMoney())
     
     /*當使用val定義欄位時,scala不在提供對應的setter方法 */
     
     /*如果使用private修飾字段時 scala不在提供對應的setter和getter方法*/
     
     
  }

}

class myatm{
  private var money = 0;
  
  def setMoney(money:Int){
    if(money > 0)
    this.money = money
  }
  
  def getMoney = {
    this.money
  }
  
  def add(a:myatm){
    this.money += a.money
  }
  
}

object Test42 {
  def main(args: Array[String]): Unit = {
    var c1 = new myatm
    c1.setMoney(200);
    
    var c2 = new myatm
    c2.setMoney(100)
    c2.add(c1)
    
    println(c2.getMoney)
    
  }
}