What is the basic syntax to declare a class in Kotlin?
Use the <code>class</code> keyword followed by the class name and curly braces. Example: <pre>class MyClass { }</pre>
Click to reveal answer
beginner
How do you declare a primary constructor in a Kotlin class?
Add the constructor parameters directly after the class name in parentheses. Example: <pre>class Person(val name: String, var age: Int)</pre>
Click to reveal answer
beginner
What keyword is used to declare a class in Kotlin?
The keyword is class. It tells Kotlin you are defining a new class.
Click to reveal answer
beginner
Can a Kotlin class have no body? Show an example.
Yes, if there is no need for properties or functions inside, you can omit the curly braces. Example: <pre>class Empty</pre>
Click to reveal answer
beginner
How do you declare properties inside a Kotlin class primary constructor?
Use <code>val</code> for read-only and <code>var</code> for mutable properties inside the constructor parentheses. Example: <pre>class Car(val brand: String, var year: Int)</pre>
Click to reveal answer
Which keyword starts a class declaration in Kotlin?
Aclass
Bstruct
Cobject
Dfun
✗ Incorrect
The class keyword is used to declare a class in Kotlin.
How do you declare a primary constructor with two properties in Kotlin?
Aclass Person(name: String, age: Int)
Bclass Person(val name: String, var age: Int)
Cclass Person { val name: String; var age: Int }
Dfun Person(val name: String, var age: Int)
✗ Incorrect
Primary constructor parameters with val or var declare properties directly.
Can a Kotlin class be declared without curly braces?
AOnly if it has a primary constructor
BNo, curly braces are always required
CYes, if the class has no body
DOnly for abstract classes
✗ Incorrect
If the class has no body, curly braces can be omitted.
What does val mean in a Kotlin class constructor?
ARead-only property
BMutable property
CFunction parameter
DLocal variable
✗ Incorrect
val declares a read-only property.
Which of these is NOT a valid Kotlin class declaration?
Aclass Animal(val species: String)
Bclass Vehicle { val wheels = 4 }
Cclass Book(var title: String, var author: String)
Dclass Person function(name: String)
✗ Incorrect
Option D uses invalid syntax; function keyword is not used in class declaration.
Explain how to declare a simple Kotlin class with a primary constructor that has two properties.
Think about how you write the class name and put properties inside parentheses.
You got /4 concepts.
Describe when you can omit the curly braces in a Kotlin class declaration.
Consider if the class has no properties or functions inside.
You got /3 concepts.
Practice
(1/5)
1. What is the correct way to declare a simple class named Car in Kotlin?
easy
A. def Car() { }
B. class Car { }
C. function Car { }
D. class Car()
Solution
Step 1: Understand Kotlin class declaration syntax
Kotlin uses the keyword class followed by the class name and curly braces to declare a class.
Step 2: Check each option
class Car { } uses class Car { }, which is correct. Options B and C use keywords from other languages. class Car() misses curly braces which are required for an empty class body.
Final Answer:
class Car { } -> Option B
Quick Check:
Kotlin class declaration = class ClassName { } [OK]
Hint: Remember: Kotlin classes start with 'class' and use braces [OK]
Common Mistakes:
Using 'def' or 'function' instead of 'class'
Omitting curly braces for class body
Adding parentheses without constructor parameters
2. Which of the following is the correct syntax to declare a class named Person with a primary constructor having a name parameter of type String?
easy
A. class Person(name: String) { }
B. class Person { val name: String }
C. class Person(name String) { }
D. class Person(name: String);
Solution
Step 1: Recall Kotlin primary constructor syntax
In Kotlin, the primary constructor is declared in parentheses after the class name with parameter types specified using a colon.
Step 2: Evaluate options
class Person(name: String) { } correctly declares class Person(name: String) { }. class Person { val name: String } declares a property inside the class but no constructor. class Person(name String) { } misses colon between parameter and type. class Person(name: String) misses curly braces for class body.
Final Answer:
class Person(name: String) { } -> Option A
Quick Check:
Primary constructor syntax = class Name(params) { } [OK]
Hint: Use colon ':' between parameter name and type in constructor [OK]
Common Mistakes:
Omitting colon between parameter and type
Forgetting curly braces for class body
Declaring properties without constructor parameters
3. What will be the output of the following Kotlin code?
class Animal(val name: String) {
fun speak() = "Hello, I am $name"
}
fun main() {
val dog = Animal("Buddy")
println(dog.speak())
}
medium
A. Hello, I am name
B. Compilation error
C. Hello, I am Animal
D. Hello, I am Buddy
Solution
Step 1: Understand class and function behavior
The class Animal has a property name and a function speak() that returns a greeting using the name.
Step 2: Trace the code execution
In main, an Animal object named dog is created with name = "Buddy". Calling dog.speak() returns "Hello, I am Buddy" which is printed.
Final Answer:
Hello, I am Buddy -> Option D
Quick Check:
String interpolation with property = Hello, I am Buddy [OK]
Hint: Look for string interpolation with $property inside functions [OK]
Common Mistakes:
Confusing property name with literal string
Expecting class name instead of property value
Assuming syntax error due to string interpolation
4. Identify the error in the following Kotlin class declaration:
class Book(title: String) {
fun printTitle() {
println(title)
}
}
medium
A. Primary constructor parameter should be declared with val or var
B. Function printTitle() should return a String
C. Property title should be nullable
D. Class body must not contain functions
Solution
Step 1: Analyze constructor and property declaration
The primary constructor parameter title is not declared with val or var, so it is not a property of the class.
Step 2: Understand Kotlin property initialization
Since title is only a parameter, it cannot be accessed by name inside the class methods like printTitle(), causing a compilation error. Use val title: String in the constructor to make it a property.
Final Answer:
Primary constructor parameter should be declared with val or var -> Option A
Quick Check:
Constructor params need val/var for properties [OK]
Hint: Add val/var to constructor params to create properties [OK]
Common Mistakes:
Thinking function must return a value
Assuming properties must be nullable
Believing class cannot have functions
5. You want to create a Kotlin class Student that stores name and grade with default grade 0. How do you declare it so that grade is optional when creating an object?
hard
A. class Student(val name: String) { var grade = 0 }
B. class Student(val name: String, val grade: Int) { init { grade = 0 } }
C. class Student(val name: String, val grade: Int = 0) { }
D. class Student(val name: String, grade: Int = 0) { val grade = 0 }
Solution
Step 1: Understand default parameter values in constructors
Kotlin allows default values for constructor parameters, making them optional when creating objects.
Step 2: Check options for default grade
class Student(val name: String, val grade: Int = 0) { } declares grade with default 0 in constructor, so it can be omitted. class Student(val name: String, val grade: Int) { init { grade = 0 } } tries to assign in init block but grade is val and cannot be reassigned. class Student(val name: String) { var grade = 0 } declares grade as property but not in constructor, so not optional parameter. class Student(val name: String, grade: Int = 0) { val grade = 0 } declares grade without val/var in constructor, so it's not a property, and then declares property separately, which is confusing.
Final Answer:
class Student(val name: String, val grade: Int = 0) { } -> Option C
Quick Check:
Default constructor params = val param: Type = value [OK]
Hint: Use default values in constructor parameters for optional fields [OK]
Common Mistakes:
Trying to assign val properties inside init block
Not using val/var for constructor parameters
Declaring properties outside constructor without defaults
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.