Chào mừng bạn đến với bài học thứ 4 của loạt bài về Objective-C. Qua 3 bài học, chắc hẳn các bạn đã có những khái niệm cơ bản nhất về OOP trong Objective-C. Tiếp tục trong bài này, chúng tôi sẽ hướng dẫn các bạn xây dựng một chương trình hoàn thiện dựa trên những đối tượng bạn đã sử dụng ở bài học thứ 2.
Bắt đầu
Chúng ta sẽ bắt đầu với Xcode và tạo ra một project mới thông qua các các bước File> New Project> Mac OS X> Application> Command Line Tool, tiếp tục đặt tên project là “TestCar” và chọn Type: Foundation.
Cuối cùng bạn nhấn vào nút Create để lưu project “TestCar” vào một chỗ cố định trong ổ cứng của bạn. Khi cửa sổ project xuất hiện bên tay trái, chúng ta sẽ cần phải tạo một lớp mới. Để làm được điều ày, bạn cần phải ấn tổ hợp phím Command-N (hoặc vào File> New File), sau đó chọn MacOS X> Cocoa> Objective-C class. Chúng ta sẽ đặt tên cho Class là “
Car
” và để mặc định tùy chọn Subclass of là NSObject
(có nghĩa là lớp Car
ta tạo ra sẽ là lớp con của NSObject
). Cuối cùng nhấn button Create để lưu class Car vào thư mục của project TestCar.Lớp
Car
bây giờ đã tạo ra nhưng nó không làm gì cả. Chúng ta sẽ thêm nội dung cho lớp Car
. Tuy nhiên hãy ghi nhớ ở bài 2 chúng tôi đã có nói, Objective-C phân chia riêng biệt mã lệnh tạo một class thành 2 phần: một phần chứa các khai báo thuộc tính và phương thức là interface (file Car.h
) và phần còn lại chứa phần lớp thực thi (fileCar.m
). Chúng ta sẽ tiến hành xây dựng interface trước tiên.Xây dựng Interface
Chúng ta sẽ mở file
Car.h
và trong trạng thái ban đầu, nó sẽ giống ở trạng thái rỗng, có nghĩa là nội dung trong interface chưa có gì cả.
Trước hết, chúng ta phải khai báo foundation framework để có thể sử dụng được những lớp như
NSString
,NSMutableString
… Sau đó, chúng ta sẽ tạo ra lớp Car
là lớp con của NSObject
. Trên lớp Car
, chúng ta sẽ tạo ra một số thông tin lữu trữ những đặc tính của đối tượng Car
. Cụ thể là đối tượng xe hơi thường sẽ có những thông tin như sau:- Make
- Model
- VIN
Thực tế thì một chiếc ôtô sẽ có rất nhiều thuộc tính. Tuy nhiên ở đây chúng tôi chỉ xin đề ra 3 thuộc tính rất thông dụng mà mọi ôtô đều có. Đó là thuộc tính make chứa thông tin về hãng xe, model chứa thông tin về mẫu xe và VIN (Vehicle dentification Number). Như vậy ở trên interface Car ta sẽ khai báo 3 thuộc tính sau dòng khai báo interface và nằm trong ngoặc
{}
như đoạn mã bên dưới:
Tuy nhiên để bên ngoài có thể truy xuất giá trị của các thuộc tính thuộc trong lớp
Car
thì trên interface Car
ta phải tạo ra các phương thức set...
nhằm có thể thay đổi giá trị thuộc tính và các phương thức get...
nhằm lấy các giá trị thuộc tính của một đối tượng Car
đã khởi tạo.
Ngoài những phương thức
get...
và set...
chúng ta có thể tạo thêm cho lớp Car
một số phương thức hoạt động khác ví dụ như:start
addGas
stop
Các phương thức trên sẽ được khai báo trong interface và ở đây chúng tôi xin áp dụng kiểu trả về là
void
cho cả 3 phương thức. Như vậy nội dung mới của interface Car
sẽ như sau:Xây dựng lớp thực thi
Vì vậy, bây giờ sau khi ta đã khai báo các thuộc tính và phương thức trên interface thì việc tiếp theo của chúng ta là phải khởi tạo nội dung cho các phương thức đã khai báo trong interface. Nhìn lại, chúng ta cần tạo 6 phương thức:
setVin
, setMake
, setModel
và vin
, make
, model
. Nội dung của file “Car.m
” như sau:
Nếu như các bạn đã tìm hiểu qua về OOP thì đều biết, bất cứ lớp nào được tạo ra đều có constructor có sẵn mặc định (phương thức khởi tạo đối tượng). Lớp Car trong Objective-C cũng giống như vậy, cho nên ta không cần tạo constructor trong lớp
Car
thì vẫn khởi tạo đối tượng Car
được. Tuy nhiên để đảm bảo mỗi đối tượng được khởi tạo sẽ có sẵn những thông tin như chúng ta mong muốn thì ta phải tự xây dựng lại constructor. Cụ thể ta sẽ thêm đoạn mã tạo constuctor như sau:
Xây dựng lớp chính (file main.m
)
Xin chúc mừng! Nếu bạn đã hoàn tất các bước trên thì bước cuối cùng này sẽ giúp chúng ta kiểm tra lại kết quả mà ta đã xây dựng. Cụ thể trong bước này ta sẽ làm các công việc sau:
- Khởi tạo đối tượng
myCar
(một thể hiện của lớpCar
) - Set và get giá trị các thuộc tính của đối tượng
myCar
- Thực thi các phương thức
start
,addGas
vàstop
của đối tượng myCar
Để làm được những điều trên các bạn hãy mở file
main.m
và gõ theo nội dung dưới đây:
Sau khi đã hoàn tất viết mã cho lớp main bạn có thể chạy chương trình bằng cách nhấn vào nút Run ở bên trên cửa sổ Project hoặc vào menu Product> Run. Nếu quá trình dịch thành công bạn sẽ nhìn thấy kết quả ở cửa sổ output bên dưới màn hình như sau:
Lưu ý:Series 6 bài viết về lập trình Objective-C này được sưu tầm từ nguồn trang:http://az4you.wordpress.com. Loạt bài viết nhằm phục vụ cho các bạn những kiến thức cơ bản ban đầu trước khi bắt tay vào học lập trình ứng dụng cho iOS (iPhone/iPad). ICTSharing xin thay mặt những người yêu lập trình Objective C gửi lời cảm ơn tới các tác giả gốc của các bài viết này! Các bạn cần lưu ý, dù là lập trình bằng bất kỳ ngôn ngữ nào, cho thiết bị nào thì nguyên lý cơ bản của nó cũng không có nhiều sự khác biệt, vì thế nếu bạn đã nắm vững một ngôn ngữ thì các ngôn ngữ còn lại sẽ không quá khó khăn nếu bạn thực sự tập trung. Trong thời gian chờ đợi ICTSharing ra mắt các video về hướng dẫn lập trình trên iOS, các bạn hãy tập trung nắm vững các phần cơ bản của ngôn ngữ Objective-C nhé.
No comments :