Classes are fundamental building blocks in Kotlin, providing a blueprint for creating objects. They encapsulate data and behavior, promoting code organization and reusability.
In Kotlin, classes are declared using the class keyword. Here's a simple class declaration:
class Person {
    var name: String = ""
    var age: Int = 0
}This creates a basic class named Person with two properties: name and age.
Kotlin classes can have a primary constructor and one or more secondary constructors. The primary constructor is part of the class header:
class Person(val name: String, var age: Int) {
    // Class body
}For more complex initialization logic, you can use an init block:
class Person(val name: String, var age: Int) {
    init {
        println("Person created: $name, $age years old")
    }
}Classes can contain properties (variables) and methods (functions). Here's an example:
class Person(val name: String, var age: Int) {
    fun introduce() {
        println("Hi, I'm $name and I'm $age years old.")
    }
}To create an object from a class, you use the class name followed by parentheses:
val john = Person("John Doe", 30)
john.introduce() // Output: Hi, I'm John Doe and I'm 30 years old.Kotlin provides visibility modifiers to control access to class members:
public (default): Visible everywhereprivate: Visible inside the class onlyprotected: Visible in the class and its subclassesinternal: Visible inside the same moduleKotlin classes are final by default. To allow inheritance, use the open keyword:
open class Animal(val name: String) {
    open fun makeSound() {
        println("The animal makes a sound")
    }
}
class Dog(name: String) : Animal(name) {
    override fun makeSound() {
        println("The dog barks")
    }
}For more advanced class features, explore Kotlin Inheritance and Kotlin Interfaces.
Classes form the backbone of object-oriented programming in Kotlin. They provide a powerful way to structure your code and model real-world entities in your programs.
To dive deeper into Kotlin's object-oriented features, check out Kotlin Objects and Kotlin Constructors.