Questions and Answers
What is the object keyword in Kotlin?
The object keyword is used in three ways: Object Expression, Object Declaration, and Companion Object.
What is the sealed keyword?
Sealed classes represent restricted class hierarchies where all subclasses are known at compile time.
What is a data class?
A data class is designed to hold data and automatically derives standard functions like equals and toString.
Can a data class extend another class?
Signup and view all the answers
What is the difference between open and abstract classes in Kotlin?
Signup and view all the answers
What is the default nullability in Kotlin?
Signup and view all the answers
What is the inner keyword used for in Kotlin?
Signup and view all the answers
What is a benefit of classes being final by default in Kotlin?
Signup and view all the answers
What is a scope function and what are its types?
Signup and view all the answers
Study Notes
Object Keyword in Kotlin
- Used for Object Expression, Object Declaration, and Companion Object.
- Object Expression defines an anonymous class with no explicit name.
- Object Declaration creates a Singleton instance easily, initialized lazily on first access.
- Companion Objects are associated with a class, initialized when the class is loaded, similar to Java's static initializers.
Sealed Keyword
- Defines restricted class hierarchies, controlling inheritance.
- All subclasses of a sealed class are known at compile time, preventing unknown subclasses in external modules.
- Similar to enum classes, but subclasses of sealed classes can have multiple instances and states.
- Sealed classes cannot be instantiated directly and must have a restricted set of subclasses, with private constructors by default.
Data Class
- Main purpose is to hold data, with compiler-generated functions: equals(), toString(), componentN(), and copy().
- Requirements include at least one primary constructor and parameters must be marked as val or var.
- Cannot be abstract, open, sealed, or inner.
Inheritance in Data Classes
- Data classes can extend other classes, but only one at a time.
- Recommended to extend a sealed class for better structure and control.
Open vs Abstract
- Classes and methods are final by default in Kotlin; using the open keyword makes them overridable.
- Abstract classes cannot be instantiated and must be subclassed; methods in abstract classes must be overridden by subclasses.
Default Nullability
- Kotlin uses Not Null By Default, meaning variables must explicitly be declared nullable.
Inner Keyword
- Marks a nested class that can access members of its outer class.
- Inner class has a reference to an instance of the outer class.
Benefit of Final Classes
- Facilitates smart casting, allowing the compiler to automatically handle type casting.
- Reduces risk of misuse of base classes, ensuring subclasses function correctly.
Scope Functions
- Blocks of code that execute within an object's context, allowing access without naming the object.
- Types include:
- let
- run
- apply
- also
- with
- Each has unique characteristics regarding reference access using this or it, and governs the result of the expression, with return behavior differing among the types.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Description
Test your knowledge on Kotlin's functionality regarding classes and objects with these flashcards. Understand key concepts such as object expressions, declarations, and companion objects. Perfect for Kotlin learners looking to solidify their understanding of object-oriented programming.