Lập trình Hướng đối tượng là gì? Giải thích OOP chi tiết