An object declaration in Kotlin creates a singleton object, which means only one instance of that object exists throughout the program.
Click to reveal answer
beginner
How do you declare a simple object named Logger in Kotlin?
Use the syntax:
object Logger {
fun log(message: String) {
println(message)
}
}
Click to reveal answer
intermediate
Can an object declaration have properties and functions in Kotlin?
Yes, an object declaration can have properties and functions just like a class, but it cannot have constructors because it is a singleton.
Click to reveal answer
intermediate
What is the difference between an object declaration and a class in Kotlin?
An object declaration creates a single instance automatically (singleton), while a class can have many instances created using constructors.
Click to reveal answer
beginner
How do you access a function inside an object declaration?
You access it directly by the object name, for example: Logger.log("Hello") without creating an instance.
Click to reveal answer
What keyword is used to declare a singleton object in Kotlin?
Ainstance
Bclass
Csingleton
Dobject
✗ Incorrect
The keyword object is used to declare a singleton object in Kotlin.
Can an object declaration in Kotlin have a constructor?
AOnly secondary constructors are allowed
BYes, it can have primary and secondary constructors
CNo, object declarations cannot have constructors
DOnly primary constructors are allowed
✗ Incorrect
Object declarations cannot have constructors because they are instantiated automatically as singletons.
How do you call a function named printMessage inside an object named Notifier?
AprintMessage()
BNotifier.printMessage()
CNotifier().printMessage()
Dnew Notifier().printMessage()
✗ Incorrect
You call the function directly on the object name: Notifier.printMessage().
Which of the following is true about Kotlin object declarations?
AThey are instantiated lazily and only once
BThey require explicit instantiation
CThey can have multiple instances
DThey cannot have functions
✗ Incorrect
Object declarations are instantiated lazily and only once, making them singletons.
What happens if you try to create an instance of an object declaration using a constructor?
AIt throws a compile-time error
BIt creates a new instance
CIt creates a copy of the object
DIt returns null
✗ Incorrect
Since object declarations have no constructors, trying to instantiate them causes a compile-time error.
Explain how to declare and use an object declaration in Kotlin.
Think about how you create a single shared tool or helper in your program.
You got /4 concepts.
Describe the differences between a Kotlin object declaration and a class.
Consider how many copies you want in your program.
You got /4 concepts.
Practice
(1/5)
1. What does the object keyword in Kotlin do?
easy
A. Creates a function that returns an object
B. Defines a class that can be instantiated multiple times
C. Declares a variable of type Object
D. Creates a single instance with properties and functions
Solution
Step 1: Understand the object keyword purpose
The object keyword creates a singleton, meaning one single instance with properties and functions.
Step 2: Compare with other options
Classes can be instantiated multiple times, variables don't define singletons, and functions returning objects are different concepts.
Final Answer:
Creates a single instance with properties and functions -> Option D
Quick Check:
object keyword = single instance [OK]
Hint: Remember: object = one single instance [OK]
Common Mistakes:
Confusing object with class
Thinking object creates multiple instances
Mixing object with variable declaration
2. Which of the following is the correct syntax to declare an object named Config in Kotlin?
easy
A. object Config { }
B. val Config = object { }
C. class Config { }
D. fun Config() { }
Solution
Step 1: Identify the object declaration syntax
The correct syntax to declare a singleton object is using the object keyword followed by the name and curly braces.
Step 2: Check other options
class Config { } declares a class, B declares an anonymous object assigned to a val, and D declares a function, so they are incorrect.
Final Answer:
object Config { } -> Option A
Quick Check:
object keyword + name + braces = correct syntax [OK]
Hint: Use 'object Name { }' to declare singleton objects [OK]
Common Mistakes:
Using class instead of object
Assigning anonymous object to val instead
Using function syntax by mistake
3. What is the output of this Kotlin code?
object Logger {
fun log(msg: String) = println("Log: $msg")
}
fun main() {
Logger.log("Start")
}
medium
A. Log: Start
B. Start
C. Logger.log(Start)
D. Compilation error
Solution
Step 1: Understand object usage
The object Logger has a function log that prints "Log: " plus the message.
Step 2: Trace the main function call
Calling Logger.log("Start") prints "Log: Start" to the console.
Final Answer:
Log: Start -> Option A
Quick Check:
Logger.log("Start") prints "Log: Start" [OK]
Hint: Object functions called by object name print their output [OK]
Common Mistakes:
Expecting just the message without prefix
Thinking it prints the function call text
Assuming compilation error due to object usage
4. Identify the error in this Kotlin object declaration:
object Data {
var count: Int
fun increment() {
count++
}
}
medium
A. Cannot use 'var' inside object
B. Missing initialization for 'count' property
C. Function 'increment' should return Int
D. Object cannot have properties
Solution
Step 1: Check property declaration
The property 'count' is declared but not initialized or marked as abstract, which is invalid in objects.
Step 2: Validate other options
Objects can have vars, functions can be Unit-returning, and objects can have properties, so other options are incorrect.
Final Answer:
Missing initialization for 'count' property -> Option B
Quick Check:
Properties in objects must be initialized [OK]
Hint: Always initialize properties in objects or use lateinit [OK]
Common Mistakes:
Forgetting to initialize properties
Thinking vars are disallowed in objects
Expecting functions to always return a value
5. You want to create a singleton object Cache that stores key-value pairs and provides a function getValue(key: String): String?. Which of the following is the best Kotlin object declaration?
hard
A. fun Cache() = mutableMapOf()
fun getValue(key: String) = Cache()[key]
B. class Cache {
val map = mutableMapOf()
fun getValue(key: String) = map[key]
}
C. object Cache {
private val map = mutableMapOf()
fun getValue(key: String) = map[key]
}
D. val Cache = mapOf()
fun getValue(key: String) = Cache[key]
Solution
Step 1: Identify singleton pattern
Using object creates a singleton Cache with a private mutable map and a function to get values.
Step 2: Compare other options
class Cache {
val map = mutableMapOf()
fun getValue(key: String) = map[key]
} is a class needing instances, C is a function returning a new map each time, D uses an immutable map and separate function, not encapsulated.
Final Answer:
object Cache {
private val map = mutableMapOf()
fun getValue(key: String) = map[key]
} -> Option C
Quick Check:
Singleton object with private mutable map = object Cache {
private val map = mutableMapOf()
fun getValue(key: String) = map[key]
} [OK]
Hint: Use object with private mutable map for singleton cache [OK]
Common Mistakes:
Using class instead of object for singleton
Returning new map each call instead of storing
Using immutable map when mutation is needed
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.