淺談Scala的Class、Object和Apply()方法
Scala中如果一個Class和一個Object同名,則稱Class是Object的伴生類。Scala沒有Java的Static修飾符,Object下的成員和方法都是靜態(tài)的,類似于Java里面加了Static修飾符的成員和方法。Class和Object都可以定義自己的Apply()方法,類名()調(diào)用Object下的Apply()方法,變量名()調(diào)用Class下的Apply()方法。
class ApplyTest{ def apply() { println("This is a class, apply()...") } } object ApplyTest{ def apply() = { println("This is an object, apply()...") new ApplyTest() } } object ApplyExample { def main(args: Array[String]) { var at=ApplyTest() at() } }
運行結(jié)果:
分析:
var at=ApplyTest()
這是類名(),調(diào)用的是Object下的Apply()方法,由于此時并沒有創(chuàng)建類的對象,所以也只能調(diào)用Object下的靜態(tài)方法。
new ApplyTest()
創(chuàng)建了一個類的對象,并且返回給了變量at。
at()
這是變量名(),顯然調(diào)用的是Class的Apply()方法。
以上這篇淺談Scala的Class、Object和Apply()方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
利用Gradle如何構(gòu)建scala多模塊工程的步驟詳解
這篇文章主要給大家介紹了關(guān)于如何利用Gradle構(gòu)建scala多模塊工程的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04淺談Scala的Class、Object和Apply()方法
下面小編就為大家?guī)硪黄獪\談Scala的Class、Object和Apply()方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05