Bird
Raised Fist0
Swiftprogramming~20 mins

Class declaration syntax in Swift - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Swift Class Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of a simple Swift class instance property
What is the output of this Swift code?
Swift
class Animal {
    var name: String
    init(name: String) {
        self.name = name
    }
}

let dog = Animal(name: "Buddy")
print(dog.name)
ABuddy
BAnimal
Cname
DCompilation error
Attempts:
2 left
💡 Hint
Look at how the property 'name' is set and accessed.
❓ Predict Output
intermediate
2:00remaining
Output when accessing a class method
What will this Swift code print?
Swift
class Calculator {
    func add(_ a: Int, _ b: Int) -> Int {
        return a + b
    }
}

let calc = Calculator()
print(calc.add(3, 4))
ACompilation error
B34
C7
D0
Attempts:
2 left
💡 Hint
The add method returns the sum of two numbers.
❓ Predict Output
advanced
2:00remaining
Output of class inheritance and method override
What is the output of this Swift code?
Swift
class Vehicle {
    func sound() -> String {
        return "Vroom"
    }
}

class Car: Vehicle {
    override func sound() -> String {
        return "Beep"
    }
}

let myCar = Car()
print(myCar.sound())
AVroom
BBeep
CCompilation error
DRuntime error
Attempts:
2 left
💡 Hint
Check which method is called on the Car instance.
❓ Predict Output
advanced
2:00remaining
Output of a class with a computed property
What will this Swift code print?
Swift
class Rectangle {
    var width: Double
    var height: Double
    var area: Double {
        return width * height
    }
    init(width: Double, height: Double) {
        self.width = width
        self.height = height
    }
}

let rect = Rectangle(width: 3, height: 4)
print(rect.area)
A12.0
B7.0
CCompilation error
D0.0
Attempts:
2 left
💡 Hint
The area is width multiplied by height.
🧠 Conceptual
expert
2:00remaining
Understanding class reference behavior in Swift
Consider this Swift code. What is the value of 'b.name' after execution?
Swift
class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

let a = Person(name: "Alice")
let b = a
b.name = "Bob"
print(a.name)
ARuntime error
BAlice
CCompilation error
DBob
Attempts:
2 left
💡 Hint
Classes are reference types in Swift.

Practice

(1/5)
1. What is the correct way to start declaring a class named Car in Swift?
easy
A. function Car() { }
B. def Car() { }
C. class Car { }
D. struct Car { }

Solution

  1. Step 1: Recognize Swift class syntax

    In Swift, classes start with the keyword class followed by the class name and curly braces.
  2. Step 2: Match the correct option

    class Car { } uses class Car { }, which is the correct syntax for declaring a class named Car.
  3. Final Answer:

    class Car { } -> Option C
  4. Quick Check:

    Swift class declaration = class ClassName { } [OK]
Hint: Look for 'class' keyword followed by name and braces [OK]
Common Mistakes:
  • Using 'def' or 'function' which are not Swift keywords
  • Confusing struct with class
  • Missing curly braces
2. Which of the following is the correct syntax to declare a class with an initializer in Swift?
easy
A. class Person { init(name: String) { self.name = name } var name: String }
B. class Person { var name: String; init(name: String) { self.name = name } }
C. class Person { init(name: String) { name = self.name } var name: String }
D. class Person { var name: String init(name: String) { name = name } }

Solution

  1. Step 1: Understand property declaration order

    In Swift, properties should be declared before the initializer for clarity and correctness.
  2. Step 2: Check initializer syntax

    The initializer must assign the parameter to the property using self.name = name.
  3. Final Answer:

    class Person { var name: String; init(name: String) { self.name = name } } -> Option B
  4. Quick Check:

    Properties before init, use self.property = parameter [OK]
Hint: Declare properties before init; assign with self.property = parameter [OK]
Common Mistakes:
  • Declaring properties after init causing errors
  • Assigning parameter to self incorrectly
  • Missing semicolon or braces
3. What will be the output of this Swift code?
class Animal {
    var name: String
    init(name: String) {
        self.name = name
    }
    func speak() -> String {
        return "Hello, I am \(name)"
    }
}

let dog = Animal(name: "Buddy")
print(dog.speak())
medium
A. Hello, I am name
B. Error: Missing initializer
C. Hello, I am
D. Hello, I am Buddy

Solution

  1. Step 1: Understand class initialization

    The class Animal has a property name initialized via init(name: String). The instance dog is created with name "Buddy".
  2. Step 2: Analyze the speak() method output

    The speak() method returns a string with the name property interpolated. So it returns "Hello, I am Buddy".
  3. Final Answer:

    Hello, I am Buddy -> Option D
  4. Quick Check:

    String interpolation with property = Hello, I am Buddy [OK]
Hint: Check property value passed to init and used in method [OK]
Common Mistakes:
  • Confusing property name with string literal
  • Forgetting to call speak() method
  • Assuming default values without init
4. Identify the error in this Swift class declaration:
class Book {
    var title: String
    init(title: String) {
        title = title
    }
}
medium
A. Property 'title' is not initialized correctly
B. Missing class keyword
C. Initializer has wrong name
D. No error, code is correct

Solution

  1. Step 1: Check property assignment in initializer

    The initializer assigns title = title, which assigns the parameter to itself, not to the property.
  2. Step 2: Correct assignment syntax

    It should be self.title = title to assign the parameter value to the property.
  3. Final Answer:

    Property 'title' is not initialized correctly -> Option A
  4. Quick Check:

    Use self.property = parameter to assign [OK]
Hint: Use self.property = parameter to avoid confusion [OK]
Common Mistakes:
  • Assigning parameter to itself instead of property
  • Forgetting self keyword
  • Assuming implicit assignment
5. You want to create a Swift class Rectangle with properties width and height, and a method area() that returns the area. Which of the following is the correct complete class declaration?
hard
A. class Rectangle { var width: Double var height: Double init(width: Double, height: Double) { self.width = width self.height = height } func area() -> Double { return width * height } }
B. class Rectangle { var width: Double var height: Double func area() -> Double { return width * height } init(width: Double, height: Double) { width = width height = height } }
C. class Rectangle { var width: Double var height: Double init(width: Double, height: Double) { width = width height = height } func area() -> Double { return width * height } }
D. class Rectangle { var width: Double var height: Double init(width: Double, height: Double) { self.width = width self.height = height } func area() { width * height } }

Solution

  1. Step 1: Check property initialization

    Properties width and height must be assigned using self.width = width and self.height = height in the initializer.
  2. Step 2: Verify method return type and body

    The area() method must return a Double and use return width * height.
  3. Final Answer:

    class Rectangle { var width: Double var height: Double init(width: Double, height: Double) { self.width = width self.height = height } func area() -> Double { return width * height } } -> Option A
  4. Quick Check:

    Use self.property in init and return in methods [OK]
Hint: Assign properties with self. and return values in methods [OK]
Common Mistakes:
  • Assigning parameters to themselves without self.
  • Missing return statement in method
  • Incorrect method return type
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard