📖 Scenario: Imagine you are building a simple app to manage books in a library. You want to create book objects to store information about each book.
🎯 Goal: You will create instances of a Book class without using the new keyword, which is not used in Kotlin. You will then print the details of the book.
📋 What You'll Learn
Create a data class called Book with properties title and author
Create an instance of Book without using new
Print the book details using string interpolation
💡 Why This Matters
🌍 Real World
Creating instances without the <code>new</code> keyword is common in Kotlin and many modern languages. It makes code cleaner and easier to read.
💼 Career
Understanding how to create and use class instances is fundamental for Kotlin developers working on Android apps, backend services, or any Kotlin-based projects.
Progress0 / 4 steps
1
Create the Book data class
Create a Kotlin data class called Book with two properties: title of type String and author of type String.
Kotlin
Hint
Use the data class keyword to create a simple class with properties.
2
Create a Book instance
Create a variable called myBook and assign it an instance of Book with the title "The Hobbit" and author "J.R.R. Tolkien". Do not use the new keyword.
Kotlin
Hint
In Kotlin, you create instances by calling the class name like a function without new.
3
Access properties of the Book instance
Create a variable called bookTitle and assign it the title property of myBook. Also create a variable called bookAuthor and assign it the author property of myBook.
Kotlin
Hint
Use dot notation to access properties of an instance.
4
Print the book details
Print the text "Title: The Hobbit, Author: J.R.R. Tolkien" using the variables bookTitle and bookAuthor with string interpolation.
Kotlin
Hint
Use println and $variableName inside a string to insert variable values.
Practice
(1/5)
1. In Kotlin, how do you create an instance of a class named Car without using the new keyword?
easy
A. val myCar = Car()
B. val myCar = new Car()
C. val myCar = create Car()
D. val myCar = Car.new()
Solution
Step 1: Understand Kotlin instance creation
Kotlin does not use the new keyword; instead, it calls the class name like a function.
Step 2: Apply correct syntax for creating instance
To create an instance of Car, simply write Car() without new.
Final Answer:
val myCar = Car() -> Option A
Quick Check:
Kotlin instance creation = Car() [OK]
Hint: Remember: Kotlin uses class name with parentheses, no 'new' needed [OK]
Common Mistakes:
Using 'new' keyword like in Java
Trying to call a method like 'create Car()'
Using 'Car.new()' which is invalid
2. Which of the following is the correct syntax to create an instance of class Person in Kotlin?
easy
A. val p = new Person()
B. val p = create Person()
C. val p = Person.new()
D. val p = Person()
Solution
Step 1: Recall Kotlin instance creation syntax
Kotlin creates instances by calling the class name with parentheses, no 'new' keyword.
Step 2: Identify the correct syntax
Only val p = Person() matches Kotlin's syntax for creating an instance.
Final Answer:
val p = Person() -> Option D
Quick Check:
Instance creation = ClassName() [OK]
Hint: Use ClassName() directly to create instances in Kotlin [OK]
Common Mistakes:
Adding 'new' keyword before class name
Using 'Person.new()' which is invalid
Trying to use 'create' keyword
3. What will be the output of the following Kotlin code?
class Dog(val name: String) {
fun bark() = "Woof! I am $name"
}
fun main() {
val dog = Dog("Buddy")
println(dog.bark())
}
medium
A. Woof! I am name
B. Woof! I am dog
C. Woof! I am Buddy
D. Compilation error
Solution
Step 1: Understand instance creation and property assignment
The instance dog is created by calling Dog("Buddy"), setting name to "Buddy".
Step 2: Evaluate the bark() function output
The bark() function returns the string with $name replaced by "Buddy".
Final Answer:
Woof! I am Buddy -> Option C
Quick Check:
dog.bark() = "Woof! I am Buddy" [OK]
Hint: Instance properties are set by constructor arguments [OK]
Common Mistakes:
Expecting 'dog' or 'name' literal instead of property value
Thinking Kotlin requires 'new' keyword
Assuming compilation error due to syntax
4. Identify the error in the following Kotlin code snippet:
class Book(val title: String)
fun main() {
val b = new Book("Kotlin Basics")
println(b.title)
}
medium
A. Missing parentheses after class name
B. Using 'new' keyword which is invalid in Kotlin
C. Incorrect property access syntax
D. Class Book must be declared as data class
Solution
Step 1: Check instance creation syntax
The code uses new Book("Kotlin Basics"), but Kotlin does not use the new keyword.
Step 2: Identify correct Kotlin syntax
Instance creation should be Book("Kotlin Basics") without new.
Final Answer:
Using 'new' keyword which is invalid in Kotlin -> Option B
Quick Check:
Kotlin instance creation = ClassName() without 'new' [OK]
Hint: Remove 'new' keyword to fix instance creation error [OK]
Common Mistakes:
Adding 'new' keyword from Java habits
Thinking parentheses are optional
Confusing data class requirement
5. Given the Kotlin class below, how can you create a list of Person instances without using the new keyword?
class Person(val name: String, val age: Int)
Choose the correct code snippet.
hard
A. val people = listOf(Person("Alice", 30), Person("Bob", 25))
B. val people = listOf(new Person("Alice", 30), new Person("Bob", 25))
C. val people = listOf(Person.new("Alice", 30), Person.new("Bob", 25))
D. val people = listOf(create Person("Alice", 30), create Person("Bob", 25))
Solution
Step 1: Understand Kotlin instance creation in collections
Instances are created by calling the class name with parentheses, no 'new' keyword.
Step 2: Check list creation syntax
listOf() accepts instances created by Person("Alice", 30) and Person("Bob", 25).
Final Answer:
val people = listOf(Person("Alice", 30), Person("Bob", 25)) -> Option A
Quick Check:
Instances in list = Person() calls without 'new' [OK]
Hint: Use ClassName() inside listOf() to create instances [OK]
Common Mistakes:
Adding 'new' keyword inside listOf()
Using invalid 'Person.new()' syntax
Trying to use 'create' keyword
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.