Useful Links
Computer Science
Programming
By Language
Kotlin Programming
1. Introduction to Kotlin
2. Kotlin Basics and Syntax
3. Functions and Lambdas
4. Object-Oriented Programming in Kotlin
5. Advanced Language Features
6. The Kotlin Standard Library
7. Concurrency with Coroutines
8. Kotlin Multiplatform
9. Practical Kotlin Development
Object-Oriented Programming in Kotlin
Classes and Objects
Defining a Class
Creating Instances (Objects)
Class Members
Properties
Declaring Properties
Getters and Setters
Custom Accessors
Backing Fields
Late-Initialized Properties (`lateinit`)
Lazy Properties (`by lazy`)
Methods (Member Functions)
Class Body
Constructors
Primary Constructor
Property Initialization
Default Values
Visibility Modifiers
Secondary Constructors
The `init` Block
Constructor Delegation
Inheritance
The `open` Keyword
Extending Classes
Overriding Methods and Properties
The `super` Keyword
Calling Superclass Implementation
Final Classes and Methods
Any Class (Root of Hierarchy)
Abstract Classes and Methods
Declaring Abstract Classes
Abstract Properties
Implementing Abstract Members
Abstract vs. Open
Interfaces
Defining Interfaces
Implementing Interfaces
Properties in Interfaces
Default Implementations
Resolving Overriding Conflicts
Functional Interfaces (SAM)
Visibility Modifiers
`public`
`private`
`protected`
`internal`
Visibility in Packages and Modules
Constructor Visibility
Special Class Types
Data Classes
Declaration and Use Cases
Requirements and Restrictions
Auto-Generated Functions
`equals`
`hashCode`
`toString`
`copy`
`componentN`
Destructuring Declarations
Sealed Classes
Use Cases
Sealed Class Hierarchies
Sealed Interfaces
When Expressions with Sealed Classes
Enum Classes
Defining Enums
Enum Properties and Methods
Enum Constants
Anonymous Classes in Enums
Nested and Inner Classes
Static Nested Classes
Inner Classes (Access to Outer Class)
Anonymous Inner Classes
Objects and Companions
Object Expressions (Anonymous Objects)
Object Declarations (Singletons)
Companion Objects
Static Members
Factory Methods
Companion Object Extensions
Accessing Companion Objects
Previous
3. Functions and Lambdas
Go to top
Next
5. Advanced Language Features