淺談Scala的Class、Object和Apply()方法
Scala中如果一個(gè)Class和一個(gè)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() } }
運(yùn)行結(jié)果:
分析:
var at=ApplyTest()
這是類名(),調(diào)用的是Object下的Apply()方法,由于此時(shí)并沒有創(chuàng)建類的對(duì)象,所以也只能調(diào)用Object下的靜態(tài)方法。
new ApplyTest()
創(chuàng)建了一個(gè)類的對(duì)象,并且返回給了變量at。
at()
這是變量名(),顯然調(diào)用的是Class的Apply()方法。
以上這篇淺談Scala的Class、Object和Apply()方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Scala實(shí)現(xiàn)二分查找的代碼實(shí)例
這篇文章主要介紹了Scala實(shí)現(xiàn)二分查找的代碼實(shí)例,找到數(shù)組的中間值,和需要查找的值進(jìn)行對(duì)比:如果中間值等于查找值,直接返回中間值下標(biāo);如果中間值大于查找值,則遞歸向左邊查找;如果中間值小于查找值,則遞歸向右邊查找,直到找完所有的元素,需要的朋友可以參考下2023-11-11利用Gradle如何構(gòu)建scala多模塊工程的步驟詳解
這篇文章主要給大家介紹了關(guān)于如何利用Gradle構(gòu)建scala多模塊工程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04淺談Scala的Class、Object和Apply()方法
下面小編就為大家?guī)硪黄獪\談Scala的Class、Object和Apply()方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05