1. Khái niệm của lập trình hướng đối tượng

Lập trình hướng đối tượng (OOP – Object Oriented Programming) là một phương pháp lập trình phổ biến trong ngành công nghiệp phần mềm hiện nay. Với lập trình hướng đối tượng, một chương trình được xem như một tập hợp các đối tượng tương tác với nhau để thực hiện các nhiệm vụ cụ thể. Điều này khác với lập trình hướng thủ tục, trong đó chương trình được xem như một tập hợp các hàm tương tác với nhau.

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

2. Cấu trúc của OOP

CLASS

Trong lập trình hướng đối tượng, đối tượng được tạo ra từ các lớp (class), là một mô tả cho một loại đối tượng cụ thể, gồm các thuộc tính và phương thức (hay còn gọi là các hành động) được định nghĩa trong đó.

Ví dụ, nếu bạn muốn tạo một ứng dụng quản lý khách hàng, bạn có thể tạo một class “Customer” (khách hàng) để mô tả các đối tượng khách hàng trong ứng dụng của bạn. Trong class “Customer”, bạn có thể định nghĩa các thuộc tính như tên, địa chỉ, số điện thoại, email, v.v. Và bạn có thể định nghĩa các phương thức để thêm, sửa, xóa khách hàng trong ứng dụng của bạn.

Một class là một mô hình chung cho các đối tượng cùng loại, nó định nghĩa các đặc tính chung cho nhóm đối tượng đó. Khi tạo đối tượng từ một class, đối tượng sẽ kế thừa các đặc tính được định nghĩa trong class, cũng như có thể có các thuộc tính và phương thức đặc biệt của nó.

 

OBJECT

Đối tượng (object) là một thực thể có thể được khởi tạo từ một class. Đối tượng chứa dữ liệu và phương thức được định nghĩa trong class, và được sử dụng để thực hiện các hành động trên dữ liệu đó.

Khi một đối tượng được khởi tạo, nó được cấp phát bộ nhớ trong máy tính để lưu trữ các giá trị dữ liệu của nó. Mỗi đối tượng có một trạng thái riêng biệt và có thể thực hiện các hành động riêng biệt.

Ví dụ, nếu bạn có một class “SinhVien” với các thuộc tính như “ten”, “tuoi”, và “diemTB”, bạn có thể tạo ra nhiều đối tượng “SinhVien” với các giá trị khác nhau cho các thuộc tính này. Ví dụ:

Trong ví dụ trên, chúng ta đã tạo hai đối tượng “SinhVien” với các giá trị khác nhau cho các thuộc tính “ten”, “tuoi”, và “diemTB”. Đối tượng “sv1” có tên là “Nguyen Van A”, tuổi là 20, và điểm trung bình là 8.5, trong khi đối tượng “sv2” có tên là “Tran Thi B”, tuổi là 21, và điểm trung bình là 9.0.

 

ATTRIBUTE

Thuộc tính (attribute) là đặc tính của một đối tượng trong lập trình hướng đối tượng. Nó là một giá trị được liên kết với một đối tượng hoặc một class và có thể được truy cập hoặc thay đổi trong quá trình chạy của chương trình.

Trong một class, bạn có thể định nghĩa các thuộc tính để mô tả các đặc điểm của đối tượng mà class đại diện cho. Ví dụ, trong class “SinhVien”, bạn có thể định nghĩa các thuộc tính như “hoTen”, “maSinhVien”, “ngaySinh”, “diemTrungBinh”, v.v.

Khi tạo một đối tượng từ class “SinhVien”, bạn có thể gán giá trị cho các thuộc tính của đối tượng này. Ví dụ:

Trong ví dụ trên, các thuộc tính “hoTen”, “maSinhVien”, “ngaySinh”, “diemTrungBinh” của đối tượng “sv1” được gán giá trị tương ứng.

METHOD

Phương thức (method) là một khối mã thực thi một số hành động trên đối tượng. Nó tương tự như một hàm trong các ngôn ngữ lập trình khác, nhưng phương thức được liên kết với một đối tượng cụ thể. Các phương thức có thể được gọi để thực hiện một số hoạt động trên đối tượng đó, hoặc để trả về một giá trị.

Trong một class, bạn có thể định nghĩa các phương thức để thực hiện các hành động trên đối tượng của class đó. Ví dụ, trong class “SinhVien”, bạn có thể định nghĩa các phương thức như “nhapThongTin()”, “tinhDiemTrungBinh()”, “inThongTin()”, v.v.

Khi gọi một phương thức, bạn cần phải chỉ định đối tượng mà phương thức sẽ thực hiện trên đó. Ví dụ:

Trong ví dụ trên, các phương thức “nhapThongTin()”, “tinhDiemTrungBinh()”, và “inThongTin()” được gọi trên đối tượng “sv1”. Phương thức “nhapThongTin()” được sử dụng để nhập thông tin cho đối tượng “sv1”, phương thức “tinhDiemTrungBinh()” được sử dụng để tính điểm trung bình của đối tượng “sv1”, và phương thức “inThongTin()” được sử dụng để in thông tin của đối tượng “sv1” ra màn hình.

 

Ngoài ra trong OOP còn tuân theo các quy tắc hoạt động như: Kế thừa (inheritance), đa hình (polymorphism), tính trừu tượng (abstraction) và đóng gói (encapsulation) nhưng sẽ được giải thích tiếp trong bài viết sau hoặc có thể tham gia học ngay lớp lập trình hướng đối tượng:

__________________________________________________________________________________________________

Project Manager, nghề với mức lương khủng

Sự khác biệt giữa front-end và back-end

Code và đồ hoạ trong lập trình game

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Mầu Ngô Giáp

CÁC KHÓA ĐÀO TẠO :

  1. Lập trình Java core.
  2. Lập trình Android.

KINH NGHIỆM ĐÀO TẠO :

  1. Trung tâm T3H – ĐH Khoa học tự nhiên:
    Giảng viên môn lập trình Java – Android.
  2. Học với chuyên gia
    Giảng viên môn lập trình Java – Android.

KINH NGHIỆM LÀM VIỆC :

  1. FPT Software
    Developer.
  2. Samsung Vietnam Mobile R&D Center (SVMC)
    Developer.
  3. Vnext Software
    Developer.
  4. Framgia Inc1. Lập trình Java core.
  5. Lập trình Android
    Developer.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Bằng cử nhân ĐH kinh Doanh và Công Nghệ Hà Nội – HUBT.
  2. Chứng chỉ lập trình viên Android tại T3H – ĐH Khoa Học Tự Nhiên TP.HCM.

Phạm Trung Đoan

CÁC KHÓA ĐÀO TẠO :

  1. Lập trình Java-Android.

KINH NGHIỆM ĐÀO TẠO :

  1. Trung tâm T3H – ĐH Khoa học tự nhiên.
  2. Giảng viên khóa Java-Android.
  3. Học với chuyên gia.
  4. Giảng viên khóa Java-Android.

KINH NGHIỆM LÀM VIỆC :

  1. Samsung Mobile R&D Center(SVMC)
    Software Enginner, Android Developer.
  2. FPT Software
    Android Developer.
  3. Framgia
    Android Developer.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Bằng kỹ sư ĐH Công Nghiệp Hà Nội.
  2. Chứng chỉ Android – Trung tâm T3H- ĐH Khoa học tự nhiên.
  3. Software Certificate Test: Advanced.

Phạm Thanh Hằng

CÁC KHÓA ĐÀO TẠO :

  1. Tiếng Anh.

KINH NGHIỆM ĐÀO TẠO :

  1. Elight Learning English.
  2. Học với chuyên gia.

KINH NGHIỆM LÀM VIỆC :

  1. Deloitte Vietnam.
  2. Dentsu Vietnam.

THÀNH TỰU ĐẠT ĐƯỢC :

  1. Top 5 cuộc thi tranh biện Voice Out 2017.
  2. Giải nhất EBBA Music – Đại học Kinh tế Quốc dân.
  3. Giải nhất cuộc thi khởi nghiệp Kinh tế Quốc dân NEUrON 2018.
  4. Giải nhất cuộc thi khởi nghiệp Ý tưởng sinh viên khởi nghiệp (thành phố Hà Nội).
  5. Giải 3 cuộc thi khởi nghiệp cấp quốc gia SV.STARTUP.

Nguyễn Văn Cương

CÁC KHÓA ĐÀO TẠO :

  1. Lập trình Java.
  2. Lập trình Mobile Android.

KINH NGHIỆM ĐÀO TẠO :

  1. Đại Học Funix
    Mentor chứng chỉ Java, Android Mobile.
  2. Học với chuyên gia
    Giảng viên khóa Java, Mobile Android.

KINH NGHIỆM LÀM VIỆC :

  1. AsianTech Developer.
  2. FPT Software Developer.
  3. Android MobileTrainer.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Bằng kỹ sư công nghệ thông tin Đại học Bách Khoa Đà Nẵng.

THÀNH TỰU ĐẠT ĐƯỢC :

  1. Giải Cá nhân xuất sắc nhất BU.

Nguyễn Tuấn Anh

CÁC KHÓA ĐÀO TẠO :

  1. Java Core + OOP.
  2. Java Web.

KINH NGHIỆM ĐÀO TẠO :

  1. Java Core / OOP / Web.
  2. Big Data.

KINH NGHIỆM LÀM VIỆC :

  1. Solution Architect at FPT Software.
  2. Big Data Engineer/PM/PO at Viettel Cyberspace (Viettel Group).
  3. Data Scientist at Gamejam.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Cử nhân ĐH Ngoại thương Hà Nội.

THÀNH TỰU ĐẠT ĐƯỢC :

  1. Giải Ba Quốc gia Olympic Tin học Việt Nam.
  2. Giải Nhất khối không chuyên ACM ICPC Asia Đà Nẵng 2014.

Nguyễn Thùy Dung

CÁC KHÓA ĐÀO TẠO :

  1. Tin Học Văn Phòng.

KINH NGHIỆM ĐÀO TẠO :

  1. 6 năm kinh nghiệm.

KINH NGHIỆM LÀM VIỆC :

  1. Giảng viên dạy các môn ngành CNTT 6 năm và dạy tin học văn phòng trung tâm kế toán bên ngoài.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Cử nhân đại học sư phạm HN2.
  2. Thạc sĩ ngành hệ thống thông tin trường HVCN bưu chính viễn thông.

Lê Văn Toàn

CÁC KHÓA ĐÀO TẠO :

  1. Lập trình Backend: PHP, Nodejs, Typescript.
  2. Lập trình Front-End (Reactjs, Vuejs, Angular, html, css).

KINH NGHIỆM ĐÀO TẠO :

  1. Trung tâm T3H – ĐH Khoa học tự nhiên :
    Giảng viên PHP, Javascript, HTML, CSS.
  2. Học với chuyên gia
    Giảng viên khóa PHP, Reactjs, HTML, CSS.

KINH NGHIỆM LÀM VIỆC :

  1. Apax English Fullstack Developer.
  2. Smartosc JSC.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Bằng cử nhân ĐHKHTN TP HCM.

Lê Hữu Việt Anh

CÁC KHÓA ĐÀO TẠO :

  1. Lập trình Front-End (html, css, javascript, jquery, bootstrap).

KINH NGHIỆM ĐÀO TẠO :

  1. Học với chuyên gia:
    Giảng viên khóa Front-end.

KINH NGHIỆM LÀM VIỆC :

  1. Web developer KMS.

Đoàn Sơn Tùng

CÁC KHÓA ĐÀO TẠO :

  1. Software testing.

KINH NGHIỆM ĐÀO TẠO :

  1. Mentor at Học Với Chuyên Gia.

KINH NGHIỆM LÀM VIỆC :

  1. QC Engineer – LogiGear Vietnam.
  2. Senior QA – Sunrise Software Solutions.
  3. Release QA – Lazada Techub.
  4. Software Test Lead – B2BE GSS Vietnam.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Dilopma of Computer Science – TafeSA (South Australia).
  2. Microsoft Certificate of System Administration.
  3. Microsoft Certificate of System Engineering.

Nguyễn Bảo Thắng

CÁC KHÓA ĐÀO TẠO :

  1. Lập trình C#.
  2. Lập trình ứng dụng Window Application, Window Presentation Foundation.

KINH NGHIỆM ĐÀO TẠO :

  1. Học với chuyên gia: Giảng viên khóa lập trình C#, WPF.
  2. Rubysoftware: Giảng viên lập trình C#, kỹ năng quản lý dự án.

KINH NGHIỆM LÀM VIỆC :

  1. Công ty cổ phần phát triển hệ thống thông tin ISM.
  2. Công ty cổ phần phát triển phần mềm chứng khoán Việt Nam.
  3. FPT Software.
  4.  Rikkeisoft.
  5. Rubysoftware.

CHỨNG CHỈ VÀ BẰNG CẤP :

  1. Kỹ sư tin học- Viện Đại Học Mở Hà Nội.
  2. Project Management Fundamentals – PMI Registered Education.

GIẢI THƯỞNG :

  1. Cá nhân xuất sắc FPT Software FSU17 BU68 2015.