1. Trang chủ
  2. » Công Nghệ Thông Tin

TÍNH HƯỚNG đối TƯỢNG TRONG SWIFT 3

6 629 4

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 107,8 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TÍNH HƯỚNG ĐỐI TƯỢNG TRONG SWIFT 3 Trong bài này mình sẽ hướng dẫn tính chất hướng đối tượng trong Swift.. Tương tự các ngôn ngữ khác trong swift cũng có đầy đủ các tính hướng đối tượng

Trang 1

TÍNH HƯỚNG ĐỐI TƯỢNG TRONG SWIFT 3

Trong bài này mình sẽ hướng dẫn tính chất hướng đối tượng trong Swift

Tương tự các ngôn ngữ khác trong swift cũng có đầy đủ các tính hướng đối tượng :

kế thừa, trừu tượng, đóng gói, đa hình

Trong bài này mình sẽ hướng dẫn về tính kế thừa và tính đa hình, hướng dẫn sau mình sẽ hướng dẫn cho các về các tính chất còn lại

Mình vễ tiếp tục sử dụng playground để test code

-Tính kế thừa trong Swift :

 Nó cho phép lớp thừa kế được thừa hưởng các thuộc tính và phương thức của lớp nó thừa kế

 Nó cho phép có thể thừa kế 1 protocol, class trừu tượng hoặc 1 class bình thường

 Nó có thể kế thừa 1 class, nhiều protocol

Khai báo tổng quát:

class A{

}

class kế thừa sử dụng dấu :

+ class B:A{}

class B kế thừa class A

+ Kế thừa hàm khởi tạo sử dụng từ khoá super.init(tham số or không có tham

số)

ví dụ: Student kế thừa từ people

Khi đó people có tất cả các thuộc tính phương thức của lớp student

Trang 2

class student có thể thêm các phương thức và thuộc tính riêng ở đây mình

thêm funcStudentInfor()

class people {

var name:String = “”

var age:Int = 0

var address = “”

init(name:String,age:Int,address:String){

self.name=name

self.age=age

self.address=address

}

init(){

}

}

class student: people{

private var id = “”

override init(){

super.init()

}

init(id:String,name:String,age:Int,address:String){

super.init(name: name, age: age, address: address)

self.id=id

Trang 3

}

func StudentInfor() {

print(“this is student!”)

}

}

-Tính đa hình trong swift:

 Tính đa hình được thể hiện ở đặc điểm có thể Overloading và Overriding:

 Ta có thể hiểu tính đa hình của đối tượng là trong từng trường hợp, hoàn cảnh khác nhau, đối tượng có khả năng thực thi các hành vi, hành xử khác nhau

 Đa hình có 2 mức căn bản: Data Type (kiểu dữ liệu) và Method (phương thức) Trong lập trình hướng đối tượng, Data Type được thể hiện ở Interface

và Method thể hiện ở overloading (nạp chồng)

 Overloading: là các phương thức có cùng tên nhưng khác tham số truyền vào

 Overriding:

 (Ghi đè)là phương thức có cùng tên, cùng tham số truyền vào, cùng kiểu giá trị trả về với phương thức ở lớp cha!

 Đó là khi phương thức đã xuất hiện ở lớp cha và được viết lại ở lớp con

 Lưu ý : không ghi đè thuộc tính chỉ ghi đè phương thức

Ví dụ:

class sau:

– Trong class people có hàm khởi tạo init() không tham số,

init(name:String,age:Int,address:String ) có tham số,

có hàm infor()

– Trong class student:

 Overloading: hàm khởi tạo có tham số init(có tham số)

init(id:String,name:String,age:Int,address:String){

Trang 4

super.init(name: name, age: age, address: address)

self.id=id

}

 Overriding:

hàm khởi tạo không có tham số:

override init(){

super.init()

}

hàm infor():

override func infor() {

let info:String = “Id \(id) Name: \(name) Age: \( age)

Address \(address)”

print(info)

}

 Nếu ta không override thì các hàm của class people sẽ được gọi bởi chúng ta đang kế thừa đã là student thì chắc chắn là people

class people {

var name:String = “”

var age:Int = 0

var address = “”

init(name:String,age:Int,address:String){

Trang 5

self.name=name

self.age=age

self.address=address

}

init(){

}

func infor() {

let info:String = “Name: \(name) Age: \( age) Address \(address)” print(info)

}

}

class student: people{

private var id = “”

override init(){

super.init()

}

init(id:String,name:String,age:Int,address:String){

super.init(name: name, age: age, address: address)

self.id=id

}

override func infor() {

Trang 6

let info:String = “Id \(id) Name: \(name) Age: \( age) Address \(address)” print(info)

}

func StudentInfor() {

print(“this is student!”)

}

}

ví dụ:gọi đối tượng

var s = student(id: “12”, name: “binh”, age: 22, address: “thanh hoa”)

s.infor()

đưa ta thông tin của đối tượng

Ngày đăng: 19/10/2016, 00:24

TỪ KHÓA LIÊN QUAN