91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Scala的Bean屬性怎么使用

發布時間:2021-12-08 15:30:57 來源:億速云 閱讀:270 作者:iii 欄目:云計算

這篇文章主要介紹“Scala的Bean屬性怎么使用”,在日常操作中,相信很多人在Scala的Bean屬性怎么使用問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Scala的Bean屬性怎么使用”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、類

class SimpleClass {
  var value = 0
}

val c = new SimpleClass

上面定義了一個簡單的類,看起來和java里面并沒有多大不同。這里還涉及到另一個問題,如果一個方法沒有參數,后面的()是可要可不要的。

二、getter and setter

還是上面那個類,我們看一下它編譯出來的class文件長什么樣子,value屬性變成了private的,而生成了2個方法,雖然跟java的get&set長得不太一樣,但是其實性質是一樣的。特殊之處在于, value_$eq ,這個$eq代表的是=,因為java當中=不能出現在方法名當中,所以用 $eq 代替。

public class SimpleClass
{
  private int value = 0;

  public int value() { return this.value; }
  public void value_$eq(int x$1) { this.value = x$1; }

}

這個時候,可以正常的訪問這個屬性

    val c = new SimpleClass
    c.value = 100
    val tmp = c.value

三、只有getter

val onlyget = 100

對應的java代碼

  private final int onlyget = 100;

  public int onlyget() {
    return this.onlyget;
  }

四、對象私有

scala里面有private,這一點和java當中的含義是相同的,不同的是,scala當中還有private[this]。先看這段代碼,這樣的代碼是沒有問題的。

class SimpleClass {
  private var value = 0
  def < (that : SimpleClass) = this.value < that.value
}

如果改成下面的樣子,問題就出現了,that.value是無法編譯通過的。private[this]意味著僅對當前對象,也就是this有效。

class SimpleClass {
  private[this] var value = 0
  def < (that : SimpleClass) = this.value < that.value
}

五、Bean屬性

我們還可以構建更加java化的get和set,注意 import scala.beans.BeanProperty 是必須的

import scala.beans.BeanProperty

class SimpleClass {
  @BeanProperty var value = 0
}

調用方法

    val c = new SimpleClass
    c.getValue()
    c.setValue(20)
    c.value = 234
    val tmp = c.value

java代碼

  private int value = 0;

  public int value() { return this.value; }
  public void value_$eq(int x$1) { this.value = x$1; }
  public void setValue(int x$1) { this.value = x$1; }
  public int getValue() { return value(); }

六、主構造函數

首先是Scala代碼,Scala代碼的構造函數和java相比更加緊湊,書寫更加簡單

class SimpleClass(name : String) {
}

調用方法

val c = new SimpleClass("bajie")

java代碼

public class SimpleClass
{

  public SimpleClass(String name)
  {
  }
}

這里有幾條規則,可以自己去進行實驗

1、如果構造函數當中的參數,帶有val或var修飾符,它天然的被當做類當中的一個屬性,也會按照之前的規則來生成get和set方法

2、如果構造函數當中的參數,沒有val和var修飾符,它僅僅是一個參數,但是當他在class當中被至少一個方法使用的話,它將會升格為一個屬性。

七、從構造函數

這里還有一個規則,每一個從構造函數,都必須以之前的某個從構造函數或者是主構造函數開始。換句話說,只有主構造函數可以調用其父類的構造函數。這一點是與java不同的。

class Person(name : String) {
  var name = "";
  var age = 0;
 
  def this(name : String, age: Int){
    this(name)
    this.age = age
  }
}

八、內部類,與java的內部類概念接近,這里不再贅述。

到此,關于“Scala的Bean屬性怎么使用”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汉源县| 安国市| 米泉市| 禹城市| 友谊县| 绥滨县| 三明市| 长海县| 松溪县| 景谷| 理塘县| 黎川县| 黑龙江省| 阿克苏市| 珲春市| 都安| 清流县| 改则县| 尉犁县| 寿阳县| 蓝山县| 垫江县| 西充县| 玉树县| 渭南市| 易门县| 凌云县| 贵州省| 饶平县| 于都县| 泰兴市| 集贤县| 石景山区| 五寨县| 彝良县| 顺昌县| 航空| 兰考县| 香河县| 安阳县| 镇远县|