Bird
Raised Fist0
Swiftprogramming~30 mins

Class declaration syntax in Swift - Mini Project: Build & Apply

Choose your learning style10 modes available
Class declaration syntax
📖 Scenario: You are creating a simple app to keep track of pets in a pet store. Each pet has a name and an age.
🎯 Goal: Build a Swift class called Pet with properties for name and age.
📋 What You'll Learn
Create a class named Pet
Add a property name of type String
Add a property age of type Int
Create an instance of Pet with name "Buddy" and age 3
Print the pet's name and age
💡 Why This Matters
🌍 Real World
Classes help organize data and behavior for real-world objects like pets, users, or products in apps.
💼 Career
Understanding class syntax is essential for building apps in Swift, especially for iOS development.
Progress0 / 4 steps
1
Create the Pet class with properties
Create a class called Pet with two properties: name of type String and age of type Int. Do not add any methods yet.
Swift
Hint

Use the class keyword to create a class. Declare properties with var and specify their types.

2
Add an initializer to the Pet class
Add an initializer init(name: String, age: Int) to the Pet class that sets the name and age properties.
Swift
Hint

Use init to create a constructor. Use self to refer to the current object's properties.

3
Create an instance of Pet
Create a variable called myPet and assign it a new Pet object with name set to "Buddy" and age set to 3.
Swift
Hint

Use the class name Pet followed by parentheses with arguments to create an object.

4
Print the pet's name and age
Print the name and age of myPet using print. Format the output exactly as: Buddy is 3 years old.
Swift
Hint

Use string interpolation with \(variable) inside the print statement.

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