📖 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
Step 1: Recognize Swift class syntax
In Swift, classes start with the keyword class followed by the class name and curly braces.
Step 2: Match the correct option
class Car { } uses class Car { }, which is the correct syntax for declaring a class named Car.
Final Answer:
class Car { } -> Option C
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
Step 1: Understand property declaration order
In Swift, properties should be declared before the initializer for clarity and correctness.
Step 2: Check initializer syntax
The initializer must assign the parameter to the property using self.name = name.
Final Answer:
class Person { var name: String; init(name: String) { self.name = name } } -> Option B
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
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".
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".
Final Answer:
Hello, I am Buddy -> Option D
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
Step 1: Check property assignment in initializer
The initializer assigns title = title, which assigns the parameter to itself, not to the property.
Step 2: Correct assignment syntax
It should be self.title = title to assign the parameter value to the property.
Final Answer:
Property 'title' is not initialized correctly -> Option A
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
Step 1: Check property initialization
Properties width and height must be assigned using self.width = width and self.height = height in the initializer.
Step 2: Verify method return type and body
The area() method must return a Double and use return width * height.
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
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 unknownstrongwhile earning +1 Grip toward your certificate.