When we design classes, we want to make sure that all the necessary data is available to the methods that will operate on this data; therefore, we encapsulate the data. However, we just want relevant information to be visible to the users of our classes that will create instances, change values of accessible properties, and call the available methods. Thus, we want to hide or protect some data that is just needed for internal use. We don't want to make accidental changes to sensitive data.
For example, when we create a new instance of any superhero, we can use both its name and birth year as two parameters for the initializer. The initializer sets the values of two properties: name
and birthYear
. The following lines show a sample code that declares the SuperHero
class.
The code file for the sample is included in the swift_3_oop_chapter_03_01
folder:
class SuperHero { var name: String var birthYear: Int init(name: String, birthYear:...