Bài 16: Classes trong swift - Lập trình Swift cơ bản

Đăng bởi: Admin | Lượt xem: 2432 | Chuyên mục: Swift


Class  là gì

Class là khuôn mẫu để tạo ra đối tượng và bên trong một class có một hoặc nhiều thuộc tính và phương thức khác nhau. Lập trình viên hoàn toàn có thể tạo lập class mới và kế thừa, sử dụng lại những phương thức, thuộc tính sẵn có của các class khác.

Cách định nghĩa một Class

Để bắt đầu, trước tiên bạn cần phải mở Xcode sau đó tạo ngay một playground và thêm code bên dưới:
class Person {

}
Từ khoá class dùng để định nghĩa một class với tên là Person
Properties
Thường thì một class sẽ có các properties và methods như code bên dưới:
Lưu ý :
- var là cú pháp để khai báo một biến giá trị(trị của biến đó có thể thay đổi),
- let là cú pháp để khai báo một biến hằng(giá trị của biến đó sẽ không được thay đổi trong quá trình sử dụng) 

Methods

Bằng việc thêm methods và class như ở ví dụ dưới đây là bạn đã có thể thêm các xử lý cho class Person rồi đấy
class Person {    

   var firstName: String?   

   var lastName: String?   

   let birthPlace = "Belgium" 

   func fullName() -> String {

     var parts: [String] = []        

     if let firstName = self.firstName {           

         parts += [firstName]       

     }        

    if let lastName = self.lastName {       

    parts += [lastName]      

    }        

    return parts.joined(separator: " ")   

    }

}

Khởi tạo một Instantiation

Sau khi định nghĩa một class với một vài properties và methods thì bước tiếp đó là tạo dựng một instance được sử dụng như sau:
let john = Person()

john.firstName = "John"

john.lastName = "Doe"

Hàm khởi tạo(Initialization) và Parameters

Chúng ta bắt đầu định nghĩa thêm các method khởi tạo mặc định hoặc method nhiều parameter như sau:
class Person {    

var firstName: String?   
var lastName: String?   
let birthPlace: String    

init() {       
  birthPlace = "France"   
} 

init(birthPlace: String) { 
 self.birthPlace = birthPlace
}
...
}

let p1 = Person()
let p2 = Person(birthPlace: "France")

Value Type

Reference Type: Từng bản sao dữ liệu sẽ được một instance chia sẻ. Một kiểu được trả về một tham chiếu đến cùng instance khi mà chúng được gán cho một biến hoặc hằng hoặc khi được truyền cho một hàm. Tham khảo ví dụ dưới đây để hiểu rõ hơn nhé·
class Employee {
    var code: Int
    var name: String
    var address: String
    
    init(code: Int, name: String, address: String) {
        self.code = code
        self.name = name
        self.address = address
    }
}

var a = Employee(code: 5, name: "BXH", address: "Sun*")
var b = a
b.name = "MH"
print(a.name) // In ra  "MH"
print(b.name) // In ra "MH"
// Khi b được gắn bằng a, cả 2 sẽ cùng tham chiếu tới một
// instance. Do đó khi ta thay đổi name của b, name 
// của a cũng bị thay đổi theo

Khi nào sử dụng Class

Khi lập trình viên cần sử dụng những tính chất đặc biệt mà Struct không có thì lúc đó nên dùng Class.
Bạn chắc chắn phải dùng Class nếu muốn làm việc một lúc với cả trình biên dịch của Swift và Objective - C. Ví dụ khi xây dựng Realm Model, phải khai báo từ khoá @objc hay và dynamic, do đó, bắt buộc phải sử dụng Class.
Khi mà chỉ cần 1 wrapper để chứa các kết nối API để trả dữ liệu thì Class có lẽ là thứ lập trình viên cần.
Thay vì phải copy instance thì Class sẽ giúp chúng ta code ngắn gọn và clean hơn.
Bài tiếp theo: Properties trong swift >>
vncoder logo

Theo dõi VnCoder trên Facebook, để cập nhật những bài viết, tin tức và khoá học mới nhất!