During the application's development, classes are used quite often as a data-holder, not to carry out complex tasks. These classes only contain properties for reading and writing purposes. The person class is a simple example of a class used as a data-holder. If the sole responsibility of the class is to handle data, programmers may want the class to be able to carry out additional functionalities:
- The data should be in a well-presented format
- We should be able to compare object properties
- We should be able to clone existing objects
All these functionalities can be written by the programmer. Alternatively, an advanced IDE could generate this code automatically. Either way, the project would be filled with boilerplate code. Just as it automatically generates getters and setters, Kotlin assumes the responsibility for generating all of these functions...