Trang chủ » Bài 1 – Mở đầu về lập trình hướng đối tượng
Lập trình hướng đối tượng

Bài 1 – Mở đầu về lập trình hướng đối tượng

oop

Xin chào mọi người!

Lần đầu tiên mình được tiếp cận về Hướng đối tượng, phải nói là nó hack não mình dễ sợ. Học mà không hiểu gì hết, ví dụ sinh động nhất là “con chó là đối tượng” blah blah, vậy mà cũng … chịu :D. Nên mình mở chủ đề về hướng đối tượng để các bạn có thể hiểu sâu hơn về nó nhé 😀

Để thống nhất với nhau thì ở trong bài viết mình sử dụng:

  • Microsoft Visual Studio 2013
  • Visual Assist X 10.8.2043

Đồng thời mình sử dụng ngôn ngữ lập trình C++ làm ngôn ngữ để giới thiệu. Các bạn có thể dựa theo nó mà viết cho cả C#, Java, PHP,… cũng tương tự nhau thôi 😀 khác mỗi cú pháp chứ không là bao :D. Để làm quen được với OOP, yêu cầu bạn phải vững về lập trình (có thể tìm Series bài viết C++ của mình), và cả đam mê học lập trình nữa nhé!

Thôi mình xin vào vấn đề chính, ngồi nói lan man quá 😀

Trước đây khi các bạn học những ngôn ngữ như Pascal, C,… các bạn được tiếp cận với phương pháp lập trình thủ tục (Procedual Programming). Phương pháp này chia nhỏ 1 chương trình lớn thành những hàm và thủ tục nhỏ để dễ quản lý. Tuy nhiên như vậy cũng không đủ, có một số yêu cầu mà nếu ta làm bằng phương pháp lập trình thủ tục thì sẽ rất rắc rối.

Chính vì vậy, phương pháp lập trình hướng đối tượng (Object Oriented Programming, hay còn gọi là OOP) ra đời. Đây được xem là phương pháp lập trình cực kỳ “mô đen” và được rất nhiều ngôn ngữ lập trình hiện thời như C#, Java, PHP,… áp dụng.

OOP làm việc với những đối tượng (object). Các bạn có thể thấy những “đối tượng” ngoài đời thực, từ những cái bàn, con mèo, cây,… những sự vật xung quanh ta đều được gọi là “đối tượng”. Các đối tượng đều có 1 lớp chính là “khuôn mẫu” để tạo nên đối tượng đó (nghe hơi hack não nhỉ :v)

Mỗi đối tượng bao gồm:

  • Thuộc tính (property): là thứ mô tả tính chất của đối tượng. Giống như tính từ trong tiếng Việt ấy :v. Có thể “tưởng tượng” thuộc tính như biến cục bộ của từng đối tượng cũng được :D. Ví dụ như con mèo có bộ lông đen, hay cái bàn có màu đỏ.
  • Phương thức (method): là thứ mô tả hành vi của đối tượng. Nếu thuộc tính là tính từ trong tiếng Việt thì phương thức lại là động từ, và nó cũng “xêm xêm” hàm của từng đối tượng vậy :D. Ví dụ như con mèo có hành động chạy, ăn, ngủ (và 1 số hành động hơi mất vệ sinh khác :v).

Cú pháp để tạo 1 lớp:

class <tên lớp>
{
  // Thuộc tính
  // Phương thức
};

Nên lưu ý sau dấu } phải có dấu ; nhé! 😀

Và cú pháp để tạo 1 đối tượng:

<tên lớp>* <tên đối tượng> = new <tên lớp>(<các tham số hàm dựng>);

Ở bài viết hiện tại mình không có nói đến  hàm dựng nên ở trong ngoặc thì bỏ trống nhé!

Ví dụ

class BanTrongTruong
{
  public: // các bạn cứ ghi như mình nhé, đừng bỏ từ khoá này
    // 2 thuộc tính
    string Ten, Lop;
    // 1 phương thức
    void GioiThieu()
    {
      cout << "Xin chao, minh ten " << Ten << ", hoc lop " << Lop;
    }
};

// Hàm main
void main()
{
  BanTrongTruong* ban1 = new BanTrongTruong(); // tạo 1 đối tượng ban1
  ban1->Ten = "Son";
  ban1->Lop = "14CTT3";
  ban1->GioiThieu(); // Xuất ra "Xin chao, minh ten Son, hoc lop 14CTT3"

  BanTrongTruong* ban2 = new BanTrongTruong(); // tạo 1 đối tượng ban2
  ban2->Ten = "An";
  ban2->Lop = "14CTT1";
  ban2->GioiThieu(); // Xuất ra "Xin chao, minh ten An, hoc lop 14CTT1"
}

Ở ví dụ trên, mình đã tạo 1 lớp BanTrongTruong có 2 thuộc tính là Ten, Lop và 1 phương thức là GioiThieu(). Cần lưu ý những điều sau:

  • Kiểu dữ liệu của đối tượng là kiểu con trỏ của lớp, vì ở đây mình đang cấp phát động cho từng biến đối tượng riêng biệt.
  • Các đối tượng có thể truy xuất tên phương thức, thuộc tính bằng dấu “->“.
  • Thuộc tính trong mỗi đối tượng là riêng biệt. Không có chuyện đối tượng này lại sử dụng thuộc tính của đối tượng kia đâu nhé (râu ông này cắm cằm bà nọ thì hơi kì :v)

Tới đây, bạn đã có thể tạo 1 lớp và sử dụng nó để tạo đối tượng rồi đấy!

Trên đây là bài viết mở đầu về lập trình hướng đối tượng. Cảm ơn các bạn đã theo dõi!

Tags

About the author

Võ Hoài Sơn

Tính tình bất định
Chọc vào là bịnh
Rất yêu lập trình
Luôn code hết mình
Mình hiện đang là sinh viên của trường ĐH Khoa học tự nhiên TPHCM. Bản thân rất thích code, kiêm luôn cả mần thơ nên thường hơi hâm hâm dở dở. Ngoài ra chém gió, chém chuối, chém trái cây các kiểu cũng là sở trường của mình. Rất mong được làm quen với các bạn :D

Add Comment