Lập trình hướng đối tượng là gì? OOP là gì?

1. Mở đầu

Lập trình hướng đội tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mô hình lập trình được tổ chức, xây dựng xung quanh đối tượng.
Người lập trình viên sẽ mô hình hóa các bài toán thực tế thành các thực thể (gọi là class). Thực thể này sẽ có các thuộc tính (gọi là biến – variable, thuộc tính – property) và các hành động (gọi là hàm – method – function). Cái mà thể hiện thực thể một cách cụ thể hóa thì được gọi là Object.

Ví dụ: Bài toán thực tế là lập trình một phần mềm để quản lý sinh viên. 
Từng bước giải quyết bài toán này nhé  :40: 

1. Tạo một thực thể – Class có tên là: Student.
2. Sinh viên thì có vài thuộc tính chính (variable): tên, tuổi, mã sinh viên…
3. Sinh viên có các hành động cơ bản: đăng ký lớp học

<?php

/**
 * Hanhtrinhtuoitre.com
 *
 * Class Student
 */
class Student
{
    /**
     * Ten sinh vien
     *
     * @var string
     */
    public $name;

    /**
     * Tuoi sinh vien
     *
     * @var number
     */
    public $age;

    /**
     * Ma sinh vien
     *
     * @var number
     */
    public $id;

    /**
     * @param $id
     * @param $classId
     */
    public function register($classId)
    {
        // dang ky sinh vien vao mot lop
    }
}

http://sandbox/5b4c2d833e79d6ba37501610214d90aa85f56653

Okey nhỉ? mình đã thấy có class rồi, variable rồi, method rồi…. Vậy còn Object trong bài toán thực tế này là gì?

Cái mà thể hiện thực thể một cách cụ thể hóa thì được gọi là Object.

Oh, vậy giả định có tất cả 2 sinh viên:
Sinh viên 1: có tên: hanhtrinhtuoitre.com, tuổi: 26, mã sinh viên: 123
Sinh viên 2: có tên: Dinh Cong Manh, tuổi: 55, mã sinh viên: 999

$sinhvien1 = new Student();
$sinhvien1->name = 'hanhtrinhtuoitre';
$sinhvien1->age = 26;
$sinhvien1->id = 123;

$sinhvien2 = new Student();
$sinhvien2->name = 'Dinh Cong Manh';
$sinhvien2->age = 55;
$sinhvien2->id = 999;

http://sandbox./5c85d993ce83bf1a872167a0771cbae507fd2616

Có lần mình phỏng vấn ứng viên phân biệt giữ Object và Class, đây là một câu hỏi cơ bản nhưng có bạn làm vài năm lập trình vẫn lúng túng khi trả lời câu hỏi này  :26: 

2. Các đặc tính của OOP.

Việc học và nắm vững các đặc tính của OOP là điều cần thiết để có thể đi xa hơn trong con đường lập trình. Cá nhân tác giả, đôi lúc cũng ngồi đọc và nghĩ lại, mỗi thời gian, cách nghĩ và hiểu sẽ khác nhau.
Đây sẽ làm nền móng để bạn có thể tiếp cận hơn với những điều thú vị sau này, ví thế đừng coi thường lý thuyết cơ bản này nhé.
Hanhtrinhtuoitre sẽ viết về các đặc tính của OOP trong các bài tiếp theo  :x1: 

Chờ đón nhé! :39: 

This entry was posted in 4 đặc tính của OOP (Object-oriented programming). Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

:1: :2: :12: :46: :59: :51: :38: :31: :22: :15: :8: more »