[OOP] Tính đóng gói trong OOP – Encapsulation

Bài viết 2 trong 2 bài thuộc: OOP Lập trình hướng đối tượng

1. Đóng gói trong lập trình hướng đối tượng là gì?

Đóng gói tức là cách thức mà Class che giấu thông tin, hạn chế quyền try cập từ bên ngoài vào.
Chắc hẳn anh em đều biết đến 3 loại Access modifiers: Public – Protected – Private. Chúng giúp ta thể hiện tính chất đóng gói của OOP bằng cách nói cho Complier biết nên, có quyền try cập vào thuộc tính, phương thức nào.

2. Phân biệt Public – Protected – Private

Phân biệt giữa các Access modifiers là một trong những câu hỏi huyền thoại khi phỏng vấn  :10: 

private – Chỉ có Class hiện tại (không phải Class kế thừa, không phải Object) mới có thể truy cập được vào thuộc tính và phương thức có kiểu là private.

protected – Chỉ có Class hiện tại và Class kế thừa nó (subclasses) mới có quyền truy cập vào thuộc tính và phương thức có kiểu là protected.

public – Class hiện tại, Class kế thừa, Object khởi tạo từ Class đều có thể truy cập đến thuộc tính và phương thức với kiểu là public.

3. Ví dụ + tại sao lại có tính chất này?

Có anh em từng nói với mình: gớm ông chỉ lắm trò, để hết là public cho nó dễ làm việc, có cái gì đâu mà phải đắn đo, suy nghĩ xem là private hay protected hay public.  :38: 

Nghe có vẻ không ổn, tưởng tượng mình xây một cái nhà, xây xong lại cứ để ai thích vào thì vào, thích lấy gì thì lấy, thích thay đổi gì thì thay đổi, thế thì loạn mất.

Ví như có một Class Nhà.

  • Class Nhà có thuộc tính Public $name: giả định nhà mình có tên là hanhtrinhtuoitre. Nhà mình mặc định tên là vậy nhưng ai đó thích đổi tên, thích gọi với một cái tên khác cũng được. hoặc lại có một nhà khác (object khác) được khởi tạo từ Class Nhà nhưng với tên khác: cuocdoivandepsao.
  • Class Nhà có một phương thức là Protected vaoThamNha(): tức là chỉ có hàng xóm, người thân thì vào được (chính class này hoặc class kế thừa). Một thanh niên giời ơi đất hỡi đòi vào nhà là lỗi ngay.
  • Class Nhà có một phương thức là Private moKetSatLayTienDiChoi(): thôi xong, method này thì chỉ mỗi ông chủ nhà mở được thôi (chính tại class này), chứ không ai mém động vào nó được.

[Phần 1] Thói xấu của tuổi trẻ: Nghiện chơi Game

Bài viết 1 trong 1 bài thuộc: Thói xấu tuổi trẻ

Game là một trò chơi, một sản phẩm của công nghệ, mà những sản phẩm đền từ công nghệ luôn đặc biệt cuốn hút người dùng.

Hiện này có nhiều bạn Streamer, Gamer chuyên nghiệp có được những thành công nhất định trên con đường sự nghiệp của họ thế nhưng ngược lại, đa phần các bạn trẻ (đặc biệt là sinh viên) đang vùi mình vào Game một cách vô định, điều đó thật tệ hại.

1. Thực trạng

Có thể dễ thấy một vài điều thực tế như sau:
– Quanh các trường đại học (cao đẳng) không khó để có thể kiếm được quán Internet. Các bạn trẻ (chủ yếu là sinh viên nam) vào quán Nét chỉ để chơi Game, vì thế nhiều quán Nét đổi tên luôn là quán Game. Số lượng người chơi khá đông và tấp nập. Không khí quán nét thường thấy: mùi khói thuốc nồng nặc, ăn uống tạm bợ, vang vang những câu chửi tục, những tiếng cười đùa, hò hét…
– Các bạn trẻ sử dụng điện thoại quá nhiều bất cứ khi nào rảnh (để lướt nét và chơi game), việc này sẽ khiến các bạn tập trung vào điện thoại mà bỏ qua nhiều điều tốt đẹp đang xảy ra ngay cạnh mình.
– Các bạn chơi nhiều giờ liền, người phờ phạc thiếu sức sống. Đa phần vui chơi chỉ mang tính giải trí, giết thời gian.
– Game cũng là cầu nối để có thể mang chúng ta gần nhau hơn, nhưng việc chơi game một cách ý thức, khoa học lại ít gặp ở các bạn trẻ.

2. Nguyên nhân

Một số nguyên nhân chủ yếu dẫn đến việc nghiện Game của giới trẻ, sinh viên.

– Cuộc sống sinh viên xa nhà thiếu thốn tình cảm, không có sự quản lý từ phía gia đình, khiến các em sống buông thả, tự do làm việc mình thích.
– Bạn bè chơi, đám đông chơi nên mình cũng chơi. Chơi nhiều lại thành thói quen và đôi lúc chính các bạn nhận ra muốn thay đổi nhưng lại không vượt qua được bản thân mình.
– Trong Game các em luôn bị cuốn hút, ảo tưởng về khả năng của bản thân, hãnh diện, tự tin vui cười khi thể hiện khả năng của mình trong thế giới ảo.

3. Hậu quả khôn lường

Ảnh hướng đến sức khỏe: ham Game khiến bạn ăn uống tạm bợ, không đúng bữa, ngồi máy tính nhiều giờ liền với mùi khói thuốc… Sức khỏe tổn hại từ lúc nào không biết.
Trí tuệ giảm sút: bao nhiêu người ngoài kia đang nỗ lực học tập, trau dồi kiến thức cho công việc sau này, còn bạn thì ngồi chơi Game và rồi nhìn lại thì bạn đã học được điều gì có giá trị cho cuộc sống? (trí thông minh, kiến thức, sự hiểu biết về con người, sự khiêm tốn, kinh nghiệm luận lý, văn hóa, hòa nhập, sự cởi mở, kỹ năng giải quyết vấn đề và phán xét.)
Thói quen xấu tạo nên tính tình xấu: môi trường Game Việt Nam thực sự không lành mạnh chút nào. Các bạn trẻ ham chơi Game thường sẽ bị lệch lạc thời gian, không phân định được việc quan trọng cần phải làm, văng tục chửi thề như một phản xạ bình thường, nhìn nhận vấn đề thiếu logic, bản chất… Thói quen xấu này được lặp đi lặp lại nhiều ngày và tạo nên tính tình của các em, đáng lo ngại nhất là khi các em không còn phân biệt được việc nào là đúng, là sai nữa.
– Mất thời gian, mất tiền bạc, mất cơ hội và mất luôn tương lai của bản thân mình. Việt Nam sẽ không thể phát triển bền vững, tốt đẹp nếu như vẫn còn những tệ nạn xã hội đáng báo động như thế này.

4. Từ bỏ Game như thế nào?

Chính bạn phải tự nhận thức được mình đang có vấn đề, đang sai lầm khi nghiện Game.
– Suy nghĩ, lo lắng về tương lai để thôi thúc mình bỏ Game, đi làm những việc có ý nghĩa. Niềm vui từ những giá trị lao động thực sự sẽ giúp bạn tìm lại bản thân mình.
– Từ bỏ thói quen chơi Game không phải đơn giản, vì vậy lúc mới đầu bạn nên nhờ bạn bè, người thân hỗ trợ trong việc quản lý thời gian, máy tính

Quá trình từ bỏ nghiện Game quả thật vất vả, gian khổ. Nhưng như vậy, bạn mới chỉ đưa mình về vạch xuất phát của một thanh niên tuổi trẻ. Và rồi, hãy mơ về một tương lai tốt đẹp, ra sức biến nó thành hiện thực nhé!

Chúc bạn thành công trên con đường của mình.

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

Bài viết 1 trong 2 bài thuộc: OOP Lập trình hướng đối tượng

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.

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

SOLID là gì? có cần học không? áp dụng như nào để code tốt hơn?

Bài viết 1 trong 2 bài thuộc: Solid - 5 nguyên tắc vàng trong lập trình

1. SOLID là gì?

S.O.L.I.D là 5 chữ cái viết tắt của 5 nguyên tắc lập trình hướng đối tượng (object-oriented computer programming)
+ Single responsibility principle
+ Open–closed principle
+ Liskov substitution principle
+ Interface segregation principle
+ Dependency inversion principle

Continue reading “SOLID là gì? có cần học không? áp dụng như nào để code tốt hơn?”

S — Single Responsibility Principle (S.R.P)

Bài viết 2 trong 2 bài thuộc: Solid - 5 nguyên tắc vàng trong lập trình

A class should have one, and only one, reason to change.

1. Lý thuyết

Mỗi Class nên chỉ có duy nhất một lý do để thay đổi.
Responsibility trong ngữ cảnh này có thể hiểu là lý do để thay đổi. Bất cứ khi nào bạn nghĩ ra vài lý do để thay đổi code thì hãy cân nhắc đến việc tách chúng ra các Class riêng biệt.

Bạn thử nghĩ lại xem, mình đã từng viết một method nào dài khoảng 1 gang tay chưa? (thi thoảng mình cũng dùng tay để đo độ dài của code :D).
Việc đầu tiên bạn nghĩ để code trở nên đẹp hơn là gì?
+ Tách nó ra thành các hàm nhỏ hơn, mỗi hàm làm một nhiệm vụ và biết đâu ta có thể tái sử dụng lại. (Big is bad, small is good)
+ Xa hơn là tách ra thành các Class, mỗi Class làm một nhiệm vụ (theo như nguyên tắc Single Responsibility này mô tả)
+ Hơn nữa, hãy để các Class giao tiếp, phụ thuộc với nhau (Dependent) thông qua Interface.

Lý thuyết ở trên sẽ có đôi phần khó hiểu (đặc biệt là các bạn mới học lập trình), vậy nên chúng ta cùng đi vào ví dụ thực tế nhé.

Continue reading “S — Single Responsibility Principle (S.R.P)”

Lợi ích của việc đọc sách là gì? Đọc sách thế nào cho hiệu quả?

“Sách hay, cũng như bạn tốt, ít và được chọn lựa; chọn lựa càng nhiều, thưởng thức càng nhiều.”

“Good books, like good friends, are few and chosen; the more select, the more enjoyable.”

Louisa May Alcott

Quả thật như vậy, sách là kho tàng tri thức vô cùng quý giá của nhân loại, là nguồn kiến thức vô tận và không bao giờ cạn kiệt. Đọc sách không chỉ để tiếp nhận kiến thức mà còn để hoàn thiện nhân cách, phát triển con người. Tuy nhiên, ngày nay với sự bùng nổ mạnh mẽ của công nghệ thông tin, văn hóa nghe nhìn lấn át văn hóa đọc làm cho giới trẻ xa dần thói quen đọc sách. Trong bài viết này tôi sẽ chia sẻ với các bạn những tác dụng tuyệt vời của việc đọc sách và cách để đọc sách hiệu quả để phần nào khởi dậy trong bạn đam mê và tình yêu cho việc đọc sách.

I. Tác dụng của việc đọc sách

Kích thích tinh thần: Đọc sách giúp kích thích các dây thần kinh não bộ từ đó làm chậm lại tiến độ của bệnh Alzheimer và mất trí nhớ, giữ cho bộ não của bạn hoạt động và tham gia ngăn không cho bị mất năng lượng. Cách tập thể dục này giúp cho não bộ của bạn luôn khỏe mạnh và tránh lão hóa. Đồng thời khi đọc sách chúng ta phải suy nghĩ, ghi nhớ làm tăng khả năng liên kết của các noron thần kinh. Việc này được lặp lại nhiều lần sẽ khiến chúng ta trở nên thông minh hơn.

Continue reading “Lợi ích của việc đọc sách là gì? Đọc sách thế nào cho hiệu quả?”

Suy Nghĩ Về Việc Học – GS Ngô Bảo Châu

Các bạn có thể đọc thêm bài viết tại đây: https://hocthenao.vn/2013/04/08/hoc-nhu-the-nao-ngo-bao-chau/comment-page-1/

Tôi rất hay được các em học sinh, sinh viên và các bậc phụ huynh hỏi về “bí quyết học tập”.  Tôi thường trả lời “Không có bí quyết gì cả. Quan trọng là niềm say mê.” Trả lời như vậy là một cách né tránh. Không sai nhưng cũng không đầy đủ. Tôi bắt buộc phải trả lời như thế khi mình chưa bao giờ suy nghĩ về vấn đề này một cách thấu đáo. Nhưng không thể nào né tránh được mãi câu hỏi này. Cũng không thể nào trút hết trách nhiệm lên đầu người khác bằng cách nói: “đây là chuyện chuyên môn của những người làm công tác nghiên cứu khoa học giáo dục”.

Điểm lại cuộc đời mình, tôi thấy cho đến thời điểm này mình không làm gì khác ngoài việc đi học, sau đó dạy học và nghiên cứu khoa học. Trong quá trình ấy, chắc tôi cũng đã từng có những suy nghĩ riêng. Chỉ có điều những suy nghĩ đó chưa bao giờ được được sắp xếp lại một cách hệ thống và được diễn đạt một cách mạch lạc. Chuẩn bị cho buổi nói chuyện này là cơ hội rất tốt để tôi làm việc này, cái việc mà phải thú thật là rất vất vả nhưng hy vọng là có ích.

Tôi xin cảm ơn International Peace Foundation và trường Đại học bách khoa đã cùng tổ chức sự kiện này. Cảm ơn tất cả các quí vị, các bạn sinh viên, học sinh đã đến dự buổi nói chuyện ngày hôm nay. Sự quan tâm của quí vị là động cơ mạnh để tôi hoàn thành bài trao đổi này.

Dàn bài của tôi dựa vào ba câu hỏi. Thứ nhất: cái gì là động cơ căn bản cho việc học tập. Thứ hai: học chữ hay học làm người? Thú thực là tôi không thích câu hỏi này, vì nó rất mập mờ và đa nghĩa. Nhưng tôi sử dụng chính tính đa nghĩa của nó để triển khai thành các câu hỏi nhỏ xung quanh việc học cái gìCâu hỏi cuối cùng làm thành nhan đề của bài nói chuyện này: học như thế nào? Tôi không có tham vọng đưa ra câu trả lời thấu đáo, đầy đủ cho cả ba câu hỏi trên, mà chỉ có ý định sắp xếp lại những suy nghĩ tản mạn của mình thành những câu trả lời không cầu toàn. Tôi hy vọng rằng vào cuối buổi nói chuyện, chúng ta sẽ còn thời gian để trao đổi thêm.

Hiền tài xứ Omaha – Warren Buffett

Sở hữu khối tài sản khổng lồ ước tính khoảng 70 tỷ USD và nhiều năm liền nằm trong danh sách những người giầu nhất thế giới, tỷ phú Warren Buffeft được ngưỡng mộ không chỉ bởi tài năng mà còn bởi lối sống giản dị. Thành công của ông không phải do cơ duyên, do gặp thời mà do niềm đam mê và những nỗ lực phi thường.

Continue reading “Hiền tài xứ Omaha – Warren Buffett”

Một vài lời khuyên cho các em tân sinh viên

Hành Trình Tuổi Trẻ xin gửi lời chào, lời chúc tới các em tân sinh viên thân mến!

Chúc mừng các em vượt qua được kỳ thi quan trọng, kết thúc 12 năm đèn sách để bước đi trên chặng đường mới nhiều thử thách hơn.

Ngay khi bắt đầu cuộc sống sinh viên là các em đã tạo cho mình một cơ hội lớn để thay đổi bản thân, sự thay đổi mang tính cách mạng, ảnh hưởng rõ ràng đến cuộc sống, tương lai sau này của các em. Có bạn sinh viên trở nên sống tự do, buông thả, chìm ngập trong games… Có bạn đầy quyết tâm, năng động, rèn dũa bản thân trở nên thành công và mạnh mẽ.

Continue reading “Một vài lời khuyên cho các em tân sinh viên”

STEVE JOBS và nhiều điều cần học hỏi

Bạn thân mến,

“Hãy luôn khát khao, và hãy cứ dại khờ” – Đây là lời kết mà Steve Jobs dành cho bài nói chuyện của mình tại đại học Stanford (2005).

Ông đã tâm sự về chính bản thân mình bằng ba câu chuyện. Không đao to búa lớn, nhưng nó là sự đúc kết cuộc đời từ tuổi thơ, tình yêu – sự nghiệp và khi đối diện với cái chết. Cả một hội trường rộng lớn lắng nghe, vỗ tay và cảm phục Ông nhiều lắm!

Hành Trình Tuổi Trẻ (H3T) mong rằng ba câu chuyện này sẽ phần nào giúp bạn có được niềm tin, cố gắng và nghị lực vượt qua khó khăn trong cuộc sống.

Continue reading “STEVE JOBS và nhiều điều cần học hỏi”