我是Scala
的新用Java背景。scala如何對待伴侶對象?
在java
當我們想分享不同類對象之間的任何領域。我們宣佈該字段爲static
。
class Car {
static NO_Of_TYRES = 4;
// some implementation.
public int getCarNoOftyres(){
NO_Of_TYRES; // although it's not a good practice to use static without class name
//but we can directly access static member in same class .
}
}
但在Scala中我們不能宣佈在class
靜態字段,我們需要使用object
(同伴對象)這一點。 在scala
我們會做這樣的,
class Car {
println(NO_Of_TYRES); // scala doesn't let us do that. gives error
println(Car.NO_Of_TYRES);// this is correct way.
}
object Car {
val NO_Of_TYRES: Int = 4;
}
我只是好奇,怎麼對待階同伴對象? 這兩個關鍵詞(class and object
)是什麼不同造成的? 爲什麼scala不讓我們直接在課堂上訪問NO_Of_TYRES
?
您可以在文件級別或類內部導入Car._'並根據我的知識使用'NO_OF_TYRES' – Daenyth
,Companaion對象必須位於同一個文件中?仍然需要導入我不這麼認爲?我的問題是,scala如何處理關鍵字類和對象? –
它需要在同一個文件中。 – Daenyth