Hiểu OOP là gì một cách đơn giản?

Rất nhiều câu hỏi phỏng vấn về OOP, lập trình hướng đối tượng mà trong những buổi phỏng vấn về các ngôn ngữ như PHP, JAVA, PyThon, Ruby… Vậy OOP là gì? OOP ra đời như thế nào?  Vì sao lại sử dụng OOP? Ưu điểm của OOP là gì, chúng ta cùng đọc trong bài viết này nhé.

OOP là gì, vì sao lại có tôi?

OOP viết tắt của từ Object-oriented programming, nghĩa là xử lý các chương trình thông qua các object. Các object ở đây được tạo ra từ constructor của các class.

Ngày xưa khi chưa có OOP, ta lập trình với POP nghĩa là Procedure Oriented Programming, chúng ta lập trình và xử lý các chương trình thông qua các hàm.

Chúng ta có thể hiểu rằng ví dụ có một chức năng tính điểm trung bình và điểm trung bình ưu tiên của học viên trường tiểu học A. Với POP ta chỉ cần tạo ra phương thức tính điểm trung bình  và ưu tiên cho trường tiểu học A là xong. Tuy nhiên, nếu sau này trường có tính mở rộng hoặc phát triển một chức năng tương tự như thế cho trường tiểu học B. Vậy ta cũng tương tự phát triển hai phương thức điểm trung bình và ưu tiên cho trường tiểu học b.

Vậy với ví dụ trên các bạn có nhận tháy rằng khi phát triển với các chức năng với POP ta có nhược điểm là dài dòng code và không có tính tái sử dụng lại hay nói cách khác rằng ta không kế thừa được.

Nhưng với OOP thì ta hoàn toàn khắc phục hai nhược điểm trên như sau:

<?php
	class TruongTieuHocA{
	
		
		public function diemTB() {
			
		}
		
		public function diemTBUT() {
			
		}
		
	}
	
	class TruongTieuHocB extends TruongTieuHocA{
	

	}
?>

Mặc dù ta không hề code bất kỳ dòng code nào ở class TruongTieuHocB, tuy nhiên ta vẫn có thể sử dụng phương thức tính diemTB và diemTBUT.

Đây là môt tính chất đặc trưng trong lập trình hướng đối tượng OOP.

Vậy một class thì nó bao gồm các thông tin gì?

Với một class với tất các các ngôn ngữ lập trình thì sẽ bao gồm các thuộc tính (properties), các phương thức hay tùy một số ngôn ngữ khác nhau mà sẽ có cách gọi khác là hàm (method or  function).

Ta có ví dụ sau về một class của PHP:

<?php
	class Person{
		public function __construct() {
		
		}
	
		private $fullName;
		
		public function setAge($age) {
			$this->age = $age;
		}
		
		public function getAge() {
			return $this->age;
		}
		
	}
?>

Trong ví dụ trên ta có một class Person gồm một constructor không tham số, có một thuộc tính là fullname và 2 set và get age.

Tùy theo mỗi ngôn ngữ mà ta có các cách viết khác nhau nhưng lưu ý rằng với OOP thì luôn luôn mang 4 tính chất đặc trưng như sau:

    • Tính đóng gói (encapsulation)
    • Tính trừu tượng ()
    • Tính kế thừa
    • Tính đa hình (polymorphism)
  •  Trong bài viết này, tôi sẽ không đề cập đến chi tiết những đặc điểm trên của OOP, tôi sẽ nói ở một bài khác chi tiết hơn để các bạn có thể hiểu sau hơn về 4 tính chất đặc điểm của OOP cũng như áp dụng vào thực tế.

Vậy ưu điểm của lập trình hướng đối tượng là gì?

    • Dễ dàng quản lý code.
    • Dễ mở rộng và maintain dự án.
    • Có tính bảo mật cao.
    • Có tính tái sử dụng.

Hẹn gặp lại các bạn ở bài viết tiếp theo nói về phân tích những đặc điểm của OOP!

Happy coding!

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x