OOP – Lập trình hướng đối tượng (AS3)

OOP (object-oriented programming), lập trình hướng đối tượng được hiểu đơn giản là 1 cách để lưu trữ và quản lý các dữ liệu và cấu trúc của chương trình. Đối với các lập trình viên Flash nói riêng thì việc lập trình theo OOP hay không phụ thuộc vào 4 yếu tố.

– Thứ nhất là thói quen: đối với nhiều người, việc lập trình không theo OOP đơn giản chỉ là do thói quen. Lập trình theo hướng trực diện MVC (Model View Controller) giúp họ có cái nhìn trực quan hơn trong công việc. Các khái niệm như package, class xyz extends, public, private… khiến họ cảm thấy khó khăn. Cũng giống như ngày nào bạn cũng đi làm trên cùng 1 con đường, quen từng ổ gà, đèn xanh, đèn đỏ và rất ngại phải đi đường khác để tới chỗ làm.

– Thứ 2 là phụ thuộc vào độ lớn của dự án. Với những dự án nhỏ chỉ với vài dòng code và quản lý dễ dàng thì OOP hay không cũng không quan trọng. Nhưng với các dự án lớn có nhiều thành phần và các function chồng chéo nhau thì OOP là cách quản lý hay.

– Thứ 3 phụ thuộc yếu tố chia sẻ source code. Đôi khi chúng ta bắt buộc phải chia sẻ source code cho người khác,  tuy nhiên không bị bắt buộc phải chia sẻ toàn bộ dự án mà chỉ 1 phần nào đó thì lập trình theo OOP giúp ta ngắt ra 1 vài class là rất dễ dàng.

– Cuối cùng là tính kế thừa. Đôi khi có những function dùng được cho nhiều dự án khác nhau, việc phải viết đi viết lại gây mất nhiều thời gian. Lập trình theo OOP giúp tiết kiệm được khoảng thời gian đó.

Cụ thể hơn 1 chút, tôi xin giới thiệu 1 ví dụ nhỏ của OOP.

Tôi muốn tính điểm trung bình cho các học sinh của 1 lớp, phương pháp tính điểm giống hệt nhau. Vậy chỉ cần 1 class có function tính điểm trung bình để dùng chung cho cả lớp.

Class tính điểm như sau:

//tinhdiem.as (trong folder myClass)
package myClass {
   public class tinhdiem{
     public var tenHS:String;
     public var toan:Number;
     public var ly:Number;
     public var van:Number;
     public var su:Number;
     private var diemTB:Number;
     private var hocsinh_var:String;
     public function tenhocsinh(){
        if (tenHS != null){
           hocsinh_var = "học sinh: " + tenHS;
        }
        return hocsinh_var;
     }
     public function diemtrungbinh(){
        diemTB = (toan + ly + van +su)/4;
        return diemTB;
     }
   }
}

Dưới đây là đoạn code trong fla chính:

//.fla
//import class myClass.tinhdiem vào
import myClass.tinhdiem;
//tạo instance hocsinh
var hocsinh = new tinhdiem();
//tên học sinh
hocsinh.tenHS = "Nguyễn Giỏi";
//điểm
hocsinh.toan = 10;
hocsinh.ly = 8;
hocsinh.van = 9;
hocsinh.su = 7;
//gọi tên và tính điểm trung bình 
var tenhocsinh_var:String = hocsinh.tenhocsinh();
var diemtb_var:String = hocsinh.diemtrungbinh();
trace(tenhocsinh_var);
trace("điểm trung bình = "+diemtb_var);

Kết quả thu được ở output sẽ là

học sinh: Nguyễn Giỏi
điểm trung bình = 8.5

Hy vọng bài này giúp bạn có được 1 chút khái niệm về OOP.