Swift hỗ trợ nhiều tính năng của lập trình hướng đối tượng (OOP). Dưới đây là một số thuộc tính chính của lập trình hướng đối tượng trong Swift:
Mục Lục
1. Class và Struct:
- Class: Được sử dụng để định nghĩa đối tượng. Hỗ trợ kế thừa, type casting, và có thể có deinitializer.
- Struct: Là kiểu giá trị và thường được sử dụng cho dữ liệu nhỏ và không thay đổi.
class Person {
var name: String
var age: Int
init(name: String, age: Int) {
self.name = name
self.age = age
}
}
struct Point {
var x: Int
var y: Int
}
2. Kế Thừa (Inheritance):
- Class có thể kế thừa từ một class khác. Điều này giúp tái sử dụng mã nguồn và xây dựng các quan hệ “is-a”.
class Student: Person {
var studentID: String
init(name: String, age: Int, studentID: String) {
self.studentID = studentID
super.init(name: name, age: age)
}
}
3. Đa Hình (Polymorphism):
- Swift hỗ trợ đa hình động và đa hình tĩnh thông qua cơ chế kế thừa và giao thức (protocol).
class Shape {
func draw() {
print("Drawing a shape")
}
}
class Circle: Shape {
override func draw() {
print("Drawing a circle")
}
}
let shape: Shape = Circle()
shape.draw() // Output: Drawing a circle
4. Đóng Gói (Encapsulation):
- Swift hỗ trợ đóng gói thông tin trong class và struct, giúp ẩn chi tiết cài đặt và chỉ cho phép truy cập thông qua giao diện công khai.
class BankAccount {
private var balance: Double
init(balance: Double) {
self.balance = balance
}
func deposit(amount: Double) {
balance += amount
}
func withdraw(amount: Double) {
if amount <= balance {
balance -= amount
} else {
print("Insufficient funds")
}
}
}
5. Giao Thức (Protocol):
- Định nghĩa một tập hợp các phương thức và thuộc tính mà một đối tượng có thể triển khai. Cho phép đa kế thừa.
protocol Printable {
func printInfo()
}
class Book: Printable {
func printInfo() {
print("This is a book")
}
}
class Car: Printable {
func printInfo() {
print("This is a car")
}
}
6. Tính Trừu Tượng (Abstraction):
- Swift hỗ trợ tính trừu tượng để ẩn chi tiết cài đặt và chỉ hiển thị thông tin cần thiết cho người sử dụng.
protocol Shape {
func draw()
}
class Circle: Shape {
func draw() {
print("Drawing a circle")
}
}
class Square: Shape {
func draw() {
print("Drawing a square")
}
}
7. Tính Đa Hình (Polymorphism):
- Có thể có nhiều hình thức của một đối tượng thông qua việc sử dụng lớp cơ sở và lớp kế thừa.
class Animal {
func makeSound() {
print("Animal makes a sound")
}
}
class Dog: Animal {
override func makeSound() {
print("Dog barks")
}
}
class Cat: Animal {
override func makeSound() {
print("Cat meows")
}
}
Lập trình hướng đối tượng trong Swift cung cấp nhiều tính năng mạnh mẽ để tổ chức và quản lý mã nguồn, giúp tạo ra mã nguồn dễ đọc, linh hoạt và tái sử dụng.
Xin chào,
99,99% nội dung trên website này là nhờ hỏi ChatGPT, rồi mình biên tập lại để dễ hiểu và dùng lâu dài. Một vài bài tự viết, còn lại là “làm việc nhóm với AI”
Mình lưu tại đây để tra cứu, học tập và chia sẻ với bạn bè. Nếu bạn tìm được gì hữu ích, cứ đọc thoải mái – miễn phí, không quảng cáo.
Mình cũng có vài app cá nhân:
QuestionBank – Ôn thi vào 10 (iOS, Android)
TypingTest by QuestionBank (iOS, Android)
Cảm ơn bạn đã ghé qua!