The basic and most important idea of a class is the Encapsulation. It is a property to encapsulate code and data, into a single entity. In Java, the data are stored in the fields and these are mostly private.
So, accessor methods – a getter and a setter are provided to let the clients of the given class access the data. For sending notifications about the change or validating the passed value, additional logic is also present in the setter.
It is the combination of accessories and the fields in case of Java. In case of Kotlin, properties are meant to be a first-class language feature. These features replace fields and accessor methods. A property in a class is declared the same as declaring a variable with val and var keywords. A property declared as val is mutable and thus, can be changed
Defining a class :
Readable property – generates a field and a trivial getter
Writable property – a getter, a setter and a field
Basically what happens is that the declaration of the property declares the related accessors (both setter and getter for writable and getter for readable property). A field stores the value
Let’s see the class usage
In Kotlin, the constructor can be called without new keyword. Instead of invoking the getter, the property is referenced directly. The logic remains the same and the code is much more concise. Setters of mutable property works in a similar manner.
Custom implementation of property accessor.
The property isSquare need no field to store the value. It only has a custom getter with the implementation provided. Every time the property is accessed, the value is computed .
- Kotlin Data Types
- Hello World program in Kotlin
- Kotlin | Retrieve Collection Parts
- Destructuring Declarations in Kotlin
- Kotlin labeled continue
- Introduction to Kotlin
- Kotlin Type Conversion
- Kotlin Exception Handling | try, catch, throw and finally
- Kotlin if-else expression
- Kotlin Environment setup for Command Line
- Kotlin constructor
- Kotlin Environment setup with Intellij IDEA
- Kotlin Nested class and Inner class
- Kotlin Variables
- Kotlin Operators
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.