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% bài viết tại website là kết quả của khai thác dữ liệu từ AI ChatGPT sau đó được lựa chọn, biên tập lại nội dung, chỉ vài bài là không dùng AI. Tôi lưu tại website này để tra cứu khi cần, để học và để chia sẻ cho bạn bè tôi. Nếu bạn tìm thấy nội dung nào đó khi tìm kiếm thì cứ đọc thoải mái, nó miễn phí, không quảng cáo.
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh