Classes help you create your own types to group data and actions together. They let you build objects that can hold information and do things.
When you want to model real-world things like a car or a person with properties and actions.
When you need to create multiple objects that share the same structure and behavior.
When you want to organize your code by grouping related data and functions.
When you want to use inheritance to create a new class based on an existing one.
When you want to keep your code clean and easy to understand by using objects.
Syntax
Swift
class ClassName {
// properties and methods go here
}
Class names start with a capital letter by convention.
Use curly braces { } to group the class content.
Examples
This class Dog has a property name and a method bark() that prints a sound.
Swift
class Dog {
var name: Stringfunc bark() {
print("Woof!")
}
}
This Car class has a default color and a method to simulate driving.
Swift
class Car {
var color: String = "Red"func drive() {
print("Driving the car")
}
}
Sample Program
This program defines a Person class with a name property and a greeting method. It creates a Person object named Alice and calls the greeting.
Swift
class Person {
var name: Stringinit(name: String) {
self.name = name
}
func greet() {
print("Hello, my name is \(name)")
}
}
let person = Person(name: "Alice")
person.greet()
OutputSuccess
Important Notes
Use init to create a special method that sets up your class when you make a new object.
Use self to refer to the current object inside the class.
Summary
Classes group data and actions into one object.
Use class ClassName { } to declare a class.
Initialize properties with init and add functions to define behavior.
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.