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,
Bài viết này sử dụng AI ChatGPT để viết sau đó được lựa chọn, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí cá nhân về các vấn đề, giải pháp. Tôi lưu tại website này để học, tra cứu và chia sẻ.
Tôi là Minh, sống tại Hà Nội, kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Các ngôn ngữ yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
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