how scala treat companion object? -


i'm new scala java background.

in java when want share field among different objects of class. declare field static.

class car {  static no_of_tyres = 4;  // implementation. public int getcarnooftyres(){        no_of_tyres; // although it's not practice use static without class name                     //but can directly access static member in same class  .    }   } 

but in scala cannot declare static fields in class, need use object(companion object) that. in scala this,

class car {  println(no_of_tyres); // scala doesn't let that. gives error   println(car.no_of_tyres);// correct way.   }  object car {  val no_of_tyres: int = 4; } 

i'm curious, how scala treat companion objects? different these 2 key-words (class , object) makes ? why scala not letting access no_of_tyres directly in class?

i'd reference answer same subject: what advantages of scala's companion objects vs static methods?

see section 4.3 of odersky's book programming in scala - chapter 4 - classes , objects

scala treats pure objects instances. in view java static member not part of instance, lives separate , different life.

with tricks of keyword object , syntactic sugar, can achieve same result maintaining stated principle: single instance of object instantiated , global access point instance provided.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -