Properties are nothing more than syntactic sugar that allows your source code to call a method using a simplified syntax. Kotlin comes with support for simple properties and delegated properties (we will learn what these are later in the chapter).
How many times have you written a class containing state information, a state that can be either retrieved or changed? Usually, state information comes in the form of fields. Here is a typical class defining two fields:
class Student(val name: String, val age: Int)
Writing such a class in Java is quite repetitive (luckily, IntelliJ is quite powerful when it comes to code generation and refactoring). You normally provide two methods for each field—a getter and a setter. The code will look like the following:
public class Student { private String name; private int age; public Student...