O'Reilly logo

Learning Scala Programming by Vikash Sharma

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Visibility rules

There are times when we don't want to let another class or similar construct use a few members. Here, we can use Scala's provided access modifiers. How we achieve control over the accessibility of members of our classes/traits/objects is through private, public, or protected access modifiers. Take a look at the following example:

package restaurant package privaterestaurant { case class Dish(name: String) trait Kitchen { self: PrivateRestaurant => private val secret = "Secret to tasty dish" //Think of a secret logical evaluation resulting in value, we don't want to expose. def cookMyDish: Option[Dish] = Some(Dish(secret)) } class PrivateRestaurant extends Kitchen { def serveDishWithSecret = Dish(secret) // Symbol secret is ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required