Instance methods và static methods là hai loại phương thức trong Swift, và chúng có những đặc điểm khác nhau. Dưới đây là một so sánh giữa instance methods và static methods:
Mục Lục
1. Instance Methods (Phương Thức Thể Hiện):
- Gắn Liền với Thể Hiện: Được gắn liền với một thể hiện cụ thể của lớp, struct, hoặc enum.
- Truy Cập Thông Qua Thể Hiện: Để gọi một instance method, bạn cần một thể hiện của lớp hoặc struct và sử dụng cú pháp
instance.method(). - Truy Cập Đến Thuộc Tính: Có thể truy cập và thay đổi thuộc tính của thể hiện.
class Dog {
func bark() {
print("Woof!")
}
}
let myDog = Dog()
myDog.bark()
2. Static Methods (Phương Thức Kiểu):
- Gắn Liền với Kiểu: Gắn liền với kiểu chứ không phải với thể hiện cụ thể.
- Truy Cập Thông Qua Kiểu: Để gọi một static method, bạn sử dụng tên của lớp hoặc struct và cú pháp
ClassOrStructName.method(). - Không Truy Cập Đến Thuộc Tính Thể Hiện: Không thể truy cập các thuộc tính của thể hiện, vì chúng không được liên kết với một thể hiện cụ thể nào cả.
struct MathUtility {
static func square(_ number: Int) -> Int {
return number * number
}
}
let result = MathUtility.square(5)
3. Sử Dụng Thích Hợp:
- Instance Methods: Thường được sử dụng khi phương thức cần truy cập và thay đổi trạng thái của thể hiện.
- Static Methods: Thường được sử dụng khi phương thức không phụ thuộc vào trạng thái của thể hiện, và có thể được gọi trực tiếp từ tên của lớp hoặc struct.
4. Self Trong Static Methods:
- Trong static methods, bạn không thể sử dụng từ khóa
selfđể tham chiếu đến thể hiện, vì chúng không có liên kết với thể hiện cụ thể nào cả. - Trong instance methods, từ khóa
selfthường được sử dụng để tham chiếu đến thể hiện hiện tại.
5. Quản Lý Trạng Thái:
- Instance methods thường được sử dụng để quản lý và thay đổi trạng thái của thể hiện.
- Static methods thường được sử dụng cho các tác vụ không phụ thuộc vào trạng thái của thể hiện và có thể được gọi từ mọi nơi mà không cần tạo một thể hiện cụ thể.
Sự lựa chọn giữa instance methods và static methods phụ thuộc vào yêu cầu cụ thể của tình huống và thiết kế của ứng 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!