Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTMasterCode.vn
Nhắc lại khái niệm lập trình hướng thủ tục (Procedural
Programming)
Tìm hiểu các khái niệm và ý nghĩa Lập trình hướng đối
tượng (OOP)
Lập trình hướng đối tượng trong VB.Net
Bài 2: Lập trình hướng đối tượng (OOP) - Giáo trình FPTMasterCode.vn
Nhắc lại khái niệm lập trình hướng thủ tục (Procedural
Programming)
Tìm hiểu các khái niệm và ý nghĩa Lập trình hướng đối
tượng (OOP)
Lập trình hướng đối tượng trong VB.Net
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethua
Bai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituong
Bai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinh
Bai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquat
Bai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethuaBai06 mot sokythuattrongkethua
Bai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethuaBai05 ket tapvakethua
Bai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituongBai04 tao vasudungdoituong
Bai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinhBai07 da hinh
Bai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquatBai08 lap trinhtongquat
IT’S ALL ABOUT YOUR MESSAGE.
IS IT YOURS?
IF YOU DON’T CARE ABOUT YOUR DRESS,
THAT’S EXACTLY WHAT YOUR MESSAGE IS:
“I Don’t Care”
REMEMBER ONE SIMPLE TRUTH
MEN WHO LOOK LIKE LEADERS ARE FOLLOWED.
AND GET RAISED.
so WHAT exactly MAKES YOU LOOK LIKE A LEADER?
LEARN 3 SIMPLE RULES
1.Dress to look slightly older than you are.
2.Dress slightly above what employees are wearing.
3.When meeting with high-level execs match their level of style and formality.
SIMPLE, RIGHT?
BUT WHAT ABOUT SPECIAL OCCASIONS?
WELL, HERE IS… YOUR PERSONAL CHEAT SHEET
BUSINESS ATTIRE: DARK MATCHED SUIT, WHITE DRESS SHIRT, CONSERVATIVE TIE, OXFORD SHOES
BUSINESS CASUAL: BLAZER, BUTTON UP SHIRT, TROUSERS, BROGUES or MONKS
LAST SECRET
Have your personal Fashion Bro in Facebook Messenger (who never sleeps or gets bored)
Design Pattern - Những công thức vàng trong thiết kếNhật Nguyễn Khắc
Link video: https://www.youtube.com/watch?v=VbOJrq71lVA
Chúng ta đã bàn về Clean Code và SOLID, đã biết về các lợi ích của chúng. Câu hỏi quan trọng còn lại là:
Làm thế nào để có Clean Code và SOLID?
Câu trả lời sẽ liên quan đến nhiều yếu tố khác nhau, bao gồm cả văn hoá, thói quen, trình độ năng lực, các kỹ thuật và công cụ..., và trong đó một yếu tốt rất quan trọng là chúng ta cần sử dụng tốt Design Pattern.
Design Pattern là các giải pháp tổng quát có thể tái sử dụng cho các trường hợp thường gặp khi thiết kế kiến trúc phần mềm.
Một số lợi ích của Design Pattern có thể kể đến như:
- Đẩy nhanh tốc độ thiết kế và phát triển phần mềm
- Chất lượng của giải pháp đã được minh chứng
- Ngăn ngừa các vấn đề phát sinh nếu thiết kế không tốt
- Có thể áp dụng cho rất nhiều tình huống khác nhau
- Dễ dàng cộng tác, chia sẻ thiết kế và mã nguồn giữa các bên.
Trong phiên Livestream về chủ đề Design Pattern, chúng ta sẽ bàn kỹ hơn về khái niệm quan trọng này, các ý nghĩa của nó, điểm qua các Design Pattern được sử dụng phổ biến và đồng thời xem xét một số ứng dụng của Design Pattern trong các tình huống thực tế.
Tại sao chúng ta lại cần Lập trình Hướng Đối tượng? Mô hình Hướng Đối tượng thì giải quyết những vấn đề gì? Thế nào là một thiết kế Hướng Đối tượng tốt? Chúng ta cần phải làm gì để có một thiết kế tốt? Tất cả những câu hỏi này sẽ được đề cập trong Live Stream “SOLID – Những nguyên lí sống còn”.
SOLID là bộ 5 nguyên lí thiết yếu mà bậc thầy lập trình Robert C. Martin khuyến nghị và cổ suý. SOLID vừa là chuẩn mực, vừa là mục đích mà các lập trình viên hướng đến. Hiểu được các nguyên lí này đã không phải là chuyện dễ, hiện thực được chúng trong các hệ thống lại càng khó hơn. Trong Live Stream này, chúng ta cũng sẽ bàn đến mối quan hệ giữa các khái niệm và kỹ thuật như: SOLID, Design Pattern, Refactoring, Clean Code, Automation Test... tất cả những khái niệm này, tưởng chừng như rời rạc, nhưng thực ra lại có mối quan hệ gắn bó rất mật thiết. Mỗi khái niệm, kỹ thuật đều có mục đích và nhiệm vụ riêng của nó, đóng góp chung vào chất lượng của sản phẩm.
Code Refactoring (Tái cấu trúc mã nguồn) là những kỹ thuật sắp xếp lại mã nguồn để chúng trở nên tốt hơn mà không làm ảnh hưởng tới hành vi của hệ thống đối với bên ngoài. Có rất nhiều kỹ thuật refactoring khác nhau, mỗi kỹ thuật đôi khi chỉ làm thay đổi một chút nho nhỏ mã nguồn, nhưng những thay đổi nhỏ đó được tích luỹ dần theo thời gian thì tạo nên một ảnh hưởng rất lớn, giúp cho hệ thống của chúng ta trở nên tốt hơn.
“Tốt” hơn nghĩa là thế nào? Nghĩa là chúng sẽ “clean” hơn và “SOLID” hơn.
Refactoring là một trong các nhóm kỹ thuật có liên quan đến nhau và ảnh hưởng đến nhau, bao gồm kiểm thử tự động, TDD, clean code, design pattern… và đều tuân thủ các nguyên lý quan trọng về thiết kế phần mềm.
Chủ đề Live Stream lần này về Code Refactoring sẽ đề cập đến ý nghĩa của refactoring, các kỹ thuật refactoring thông dụng và ứng dụng của chúng trong thực tế. Phiên demo sẽ có các hướng dẫn về việc sử dụng các công cụ để thực hiện các kỹ thuật refactoring và giải thích cụ thể lợi ích của chúng. Nếu bạn đã nghe về Clean Code, SOLID, Design Pattern thì phiên Live Stream lần này là một dịp không thể bỏ qua để hoàn thiện hơn nhóm các kỹ thuật quan trọng này.
Tài liệu lập trình hướng đối tượng với Java của PGS.TS. Trần Đình Quế và KS. Nguyễn Mạnh Hùng sẽ giúp bạn tìm hiểu về phương pháp lập trình hướng đội tượng với ngôn ngữ Java.
Trong những năm gần đây, lập trình hướng đối tượng đã trở nên gần gũi nhờ sự ra đời liên tiếp của các ngôn ngữ lập trình hướng đối tượng. Sức mạnh của phương pháp lập trình hướng đối tượng thể hiện ở chỗ khả năng mô hình hoá hệ thống dựa trên các đối tượng thực tế, khả năng đóng gói và bảo vệ an toàn dữ liệu, khả năng sử dụng lại mã nguồn để tiết kiệm chi phí và tài nguyên; đặc biệt là khả năng chia sẽ mã nguồn trong cộng đồng lập trình viên chuyên nghiệp.
Những điểm mạnh này hứa hẹn sẽ thúc đẩy phát triển một môi trường lập trình tiên tiến cùng với nền công nghiệp lắp ráp phần mềm với các thư viện thành phần có sẵn.
Tài liệu lập trình hướng đối tượng với Java này nhằm giới thiệu cho các sinh viên một cái nhìn tổng quan về phương pháp lập trình hướng đối tượng cùng cung cấp những kiến thức, các kỹ thuật cơ bản cho phát triển các ứng dụng của mình dựa trên ngôn ngữ lập trình Java - một trong những ngôn ngữ lập trình hướng đối tượng thông dụng nhất hiện nay.
Nội dung của tài liệu bao gồm 6 chương:
Trích dẫn
Chương 1: Tổng quan về cách tiếp cận hướng đối tượng
Chương 2: Những khái niệm cơ bản của lập trình hướng đối tượng
Chương 3: Ngôn ngữ Java
Chương 4: Kế thừa và đa hình trên Java
Chương 5: Biểu diễn và cài đặt các cấu trúc dữ liệu trừu tượng trên Java
Chương 6: Lập trình giao diện trên Java
GIAO TRINH TRIET HOC MAC - LENIN (Quoc gia).pdfLngHu10
Chương 1
KHÁI LUẬN VỀ TRIẾT HỌC VÀ TRIẾT HỌC MÁC - LÊNIN
A. MỤC TIÊU
1. Về kiến thức: Trang bị cho sinh viên những tri thức cơ bản về triết học nói chung,
những điều kiện ra đời của triết học Mác - Lênin. Đồng thời, giúp sinh viên nhận thức được
thực chất cuộc cách mạng trong triết học do
C. Mác và Ph. Ăngghen thực hiện và các giai đoạn hình thành, phát triển triết học Mác - Lênin;
vai trò của triết học Mác - Lênin trong đời sống xã hội và trong thời đại ngày nay.
2. Về kỹ năng: Giúp sinh viên biết vận dụng tri thức đã học làm cơ sở cho việc nhận
thức những nguyên lý cơ bản của triết học Mác - Lênin; biết đấu tranh chống lại những luận
điểm sai trái phủ nhận sự hình thành, phát triển triết học Mác - Lênin.
3. Về tư tưởng: Giúp sinh viên củng cố niềm tin vào bản chất khoa học và cách mạng
của chủ nghĩa Mác - Lênin nói chung và triết học Mác - Lênin nói riêng.
B. NỘI DUNG
I- TRIẾT HỌC VÀ VẤN ĐỀ CƠ BẢN CỦA TRIẾT HỌC
1. Khái lược về triết học
a) Nguồn gốc của triết học
Là một loại hình nhận thức đặc thù của con người, triết học ra đời ở cả phương Đông và
phương Tây gần như cùng một thời gian (khoảng từ thế kỷ VIII đến thế kỷ VI trước Công
nguyên) tại các trung tâm văn minh lớn của nhân loại thời cổ đại. Ý thức triết học xuất hiện
không ngẫu nhiên, mà có nguồn gốc thực tế từ tồn tại xã hội với một trình độ nhất định của
sự phát triển văn minh, văn hóa và khoa học. Con người, với kỳ vọng được đáp ứng nhu
cầu về nhận thức và hoạt động thực tiễn của mình đã sáng tạo ra những luận thuyết chung
nhất, có tính hệ thống, phản ánh thế giới xung quanh và thế giới của chính con người. Triết
học là dạng tri thức lý luận xuất hiện sớm nhất trong lịch sử các loại hình lý luận của nhân
loại.
Với tư cách là một hình thái ý thức xã hội, triết học có nguồn gốc nhận thức và nguồn
gốc xã hội.
* Nguồn gốc nhận thức
Nhận thức thế giới là một nhu cầu tự nhiên, khách quan của con người. Về mặt lịch
sử, tư duy huyền thoại và tín ngưỡng nguyên thủy là loại hình triết lý đầu tiên mà con
người dùng để giải thích thế giới bí ẩn xung quanh. Người nguyên thủy kết nối những hiểu
biết rời rạc, mơ hồ, phi lôgích... của mình trong các quan niệm đầy xúc cảm và hoang
tưởng thành những huyền thoại để giải thích mọi hiện tượng. Đỉnh cao của tư duy huyền
thoại và tín ngưỡng nguyên thủy là kho tàng những câu chuyện thần thoại và những tôn
9
giáo sơ khai như Tô tem giáo, Bái vật giáo, Saman giáo. Thời kỳ triết học ra đời cũng là
thời kỳ suy giảm và thu hẹp phạm vi của các loại hình tư duy huyền thoại và tôn giáo
nguyên thủy. Triết học chính là hình thức tư duy lý luận đầu tiên trong lịch sử tư tưởng
nhân loại thay thế được cho tư duy huyền thoại và tôn giáo.
Trong quá trình sống và cải biến thế giới, từng bước con người có kinh nghiệm và có
tri thức về thế giới. Ban đầu là những tri thức cụ thể, riêng lẻ, cảm tính. Cùng với sự tiến
bộ của sản xuất và đời sống, nhận thức của con người dần dần đạt đến trình độ cao hơn
trong việc giải thích thế giới một cách hệ thống
GIÁO TRÌNH 2-TÀI LIỆU SỬA CHỮA BOARD MONO TỦ LẠNH MÁY GIẶT ĐIỀU HÒA.pdf
https://dienlanhbachkhoa.net.vn
Hotline/Zalo: 0338580000
Địa chỉ: Số 108 Trần Phú, Hà Đông, Hà Nội
CÁC BIỆN PHÁP KỸ THUẬT AN TOÀN KHI XÃY RA HỎA HOẠN TRONG.pptxCNGTRC3
Cháy, nổ trong công nghiệp không chỉ gây ra thiệt hại về kinh tế, con người mà còn gây ra bất ổn, mất an ninh quốc gia và trật tự xã hội. Vì vậy phòng chông cháy nổ không chỉ là nhiệm vụ mà còn là trách nhiệm của cơ sở sản xuất, của mổi công dân và của toàn thể xã hội. Để hạn chế các vụ tai nạn do cháy, nổ xảy ra thì chúng ta cần phải đi tìm hiểu nguyên nhân gây ra các vụ cháy nố là như thế nào cũng như phải hiểu rõ các kiến thức cơ bản về nó từ đó chúng ta mới đi tìm ra được các biện pháp hữu hiệu nhất để phòng chống và sử lý sự cố cháy nổ.
Mục tiêu:
- Nêu rõ các nguy cơ xảy ra cháy, nổ trong công nghiệp và đời sống; nguyên nhân và các biện pháp đề phòng phòng;
- Sử dụng được vật liệu và phương tiện vào việc phòng cháy, chữa cháy;
- Thực hiện được việc cấp cứa khẩn cấp khi tai nạn xảy ra;
- Rèn luyện tính kỷ luật, kiên trì, cẩn thận, nghiêm túc, chủ động và tích cực sáng tạo trong học tập.
Để xem full tài liệu Xin vui long liên hệ page để được hỗ trợ
:
https://www.facebook.com/garmentspace/
https://www.facebook.com/thuvienluanvan01
HOẶC
https://www.facebook.com/thuvienluanvan01
https://www.facebook.com/thuvienluanvan01
tai lieu tong hop, thu vien luan van, luan van tong hop, do an chuyen nganh
98 BÀI LUYỆN NGHE TUYỂN SINH VÀO LỚP 10 TIẾNG ANH DẠNG TRẮC NGHIỆM 4 CÂU TRẢ ...
Oop unit 01 tổng quan lập trình hướng đối tượng
1. Bài 1
Tổng quan
Lập trình hướng
đối tượng
Trịnh Thành Trung
trungtt@soict.hust.edu.vn
2. Nội dung
1. Kỹ thuật lập trình
2. Kỹ thuật hướng đối
tượng
3. Các khái niệm cơ bản
4. Các nguyên lý
5. Phân tích thiết kế
hướng đối tượng
3. Kỹ thuật lập trình
Lập trình hướng đối tượng là một kỹ thuật
lập trình. Vậy kỹ thuật lập trình là gì?
1
4. 4
Kỹ thuật lập trình
• "Lập trình hướng đối tượng" là một kỹ thuật lập
trình. Vậy "kỹ thuật lập trình" là gì?
• Kỹ thuật lập trình: Kỹ thuật thực thi một giải pháp
phần mềm (cấu trúc dữ liệu + giải thuật) dựa trên
nền tảng một phương pháp luận (methodology)
và một hoặc nhiều ngôn ngữ lập trình phù hợp
với yêu cầu đặc thù của ứng dụng.
5. 5
Kỹ thuật lập trình
• Các mô thức lập trình
• Các ý tưởng, thuật toán để
giải quyết vấn đề
• Phong cách trình bày trong
lập trình
• Văn hóa lập trình
"Phương pháp luận"
6. 6
Kỹ thuật lập trình
• Mô thức - nguyên tắc chung
cơ bản
• Cú pháp - xác định cái gì là
hợp lệ trong mã nguồn
• Ngữ nghĩa - ngữ pháp của
ngôn ngữ lập trình
"Ngôn ngữ lập trình"
7. 7
Ngôn ngữ lập trình
• Ngôn ngữ?
• Phương tiện để giao tiếp
• Hệ thống ký hiệu để diễn đạt
8. 8
Ngôn ngữ lập trình
• Ngôn ngữ máy
• Các chỉ thị được thể hiện bằng các chữ số nhị phân 1 và
0.
1101010101101010
1010100010101010
9. 9
Ngôn ngữ lập trình
• Ngôn ngữ lập trình
• Là ngôn ngữ được chuẩn hóa
• Cả con người và máy tính có thể đọc và hiểu được
• Sử dụng chương trình dịch tương ứng để giao tiếp với
máy tính
10. 10
Trình dịch
Trình dịch -
Compiler
Là chương trình
thực hiện biên
dịch toàn bộ
chương trình
nguồn thành mã
máy trước khi
thực hiện
11. 11
Sự phát triển của
ngôn ngữ lập trình
Ngôn ngữ máy
Lập trình
tuần tự
Hướng
thủ tục
Hướng
đối tượng
11
12. 12
Sự phát triển của
ngôn ngữ lập trình
• Lập trình tuần tự
• Mã nguồn được viết dưới dạng "đầu tiên làm thế này, sau
đó làm thế kia"
• Khó sửa lỗi, bảo trì.
13. 13
Sự phát triển của
ngôn ngữ lập trình
• Lập trình hướng thủ tục (Lập trình cấu trúc)
• Xây dựng chương trình dựa trên các hàm/thủ tục/chương
trình con
• Dữ liệu và xử lý (hàm) tách rời nhau
• Các hàm không bắt buộc phải tuân theo một cách thức
chung truy cập vào dữ liệu
14. 14
Trừu tượng hóa
• Sự phát triển của các ngôn ngữ lập trình chính là
sự phát triển của quá trình trừu tượng hóa
(abstraction)
• Assembly : Trừu tượng hóa kiểu dữ liệu/chỉ thị cơ bản
• Ngôn ngữ cấu trúc: Trừu tượng hóa điều khiển (control
abstraction) + trừu tượng hóa chức năng (functional
abstraction)
15. Kỹ thuật hướng đối tượng
Giới thiệu về công nghệ đối tượng và kỹ
thuật hướng đối tượng
2
16. 16
Đối tượng
• Đối tượng là gì?
"Tất cả mọi thứ đều là đối tượng"
-Alan Kay
17. 17
Lập trình hướng đối tượng
• Coi chương trình phần mềm là một tập hợp các
đối tượng tương tác với nhau
Object-oriented modeling
House
Tom Car
Flower
House
Tom
Car
Flower
lives in
drives
Model
Reality
gets
18. 18
Lập trình hướng đối tượng
• Mỗi đối tượng trong chương trình có các dữ liệu
độc lập của mình và chiếm bộ nhớ riêng của
mình.
• Mỗi đối tượng đều có dạng đặc trưng của lớp các
đối tượng đó.
• Tất cả các đối tượng thuộc về cùng một lớp đều
có các hành vi giống nhau
19. 19
Trừu tượng hóa
• Sự phát triển của các ngôn ngữ lập trình chính là
sự phát triển của quá trình trừu tượng hóa
(abstraction)
• Lập trình hướng đối tượng
• Trừu tượng hóa dữ liệu (data abstraction)
• Coi các dữ liệu trong chương trình là các đối tượng
20. Các khái niệm
Các khái niệm cơ bản trong lập trình hướng
đối tượng
3
21. 21
Đối tượng
• Trong thế giới thực
• VD: Sinh viên, ô tô, màu sắc…
• Mỗi đối tượng đều có:
• Các thông tin, trạng thái
• Ví dụ: Các thông tin về ô tô có màu sắc, tốc độ, năm sx…
• Các hoạt động
• Ví dụ: Tăng ga, phanh, giảm tốc, đi đến một địa điểm…
22. 22
Đối tượng
Trạng thái Hành vi
Con chó Tên
Màu sắc
Giống chó
Cảm xúc
Sủa
Vẫy đuôi
Ăn
Chạy
Ô tô Hãng sản xuất
Kích thước
Màu sắc
Giá tiền
Tăng tốc
Giảm tốc
Đâm
Tài khoản Tên tài khoản
Số tài khoản
Ngân hàng
Số dư
Rút tiền
Gửi tiền
Kiểm tra số dư
23. 23
Đối tượng
• Đối tượng là duy nhất. Không có hai đối tượng
giống nhau dù cùng chia sẻ các tính chất, trạng
thái
• Ví dụ
• Sinh viên A và Màu tím
• Sinh viên A và Con khủng long
• Sinh viên A và Bill Gates
• Sinh viên A và Sinh viên B
24. 24
Đối tượng
• Mô hình hóa vào trong lập trình:
Đóng gói thành trạng thái
(state) và hành vi (behavior).
• Trạng thái được biểu diễn bởi các
thuộc tính (attributes) và các mối
quan hệ (relationships).
• Hành vi được biểu diễn bởi các thao
tác (operations) hay phương thức
(methods).
25. 25
Trạng thái và hành vi
• Trạng thái của một đối tượng
là một trong các điều kiện tại
đó mà đối tượng tồn tại.
• Trạng thái của một đối tượng
có thể thay đổi theo thời gian.
Trạng thái
26. 26
Trạng thái và hành vi
• Hành vi quyết định đối tượng đó hành
động và đáp trả như thế nào đối với
bên ngoài.
• Hành vi nhìn thấy được của một đối
tượng được mô hình thành một tập các
thông điệp nó có thể đáp trả (các thao
tác mà đối tượng đó thực hiện).
Hành vi
27. 27
Đối tượng phần mềm
• Đối tượng (object) là một thực thể phần mềm
bao bọc các thuộc tính và các phương thức liên
quan.
• Thuộc tính được xác định bởi giá trị cụ thể gọi là thuộc
tính thể hiện.
• Một đối tượng cụ thể được gọi là một thể hiện.
Đối tượng phần mềm Đối tượng phần mềm Xe Đạp
28. 28
Bài toán thực tiễn
Quản lý tài khoản ngân hàng
Thuộc tính
Account name: Duc Binh
Balance: 2.000.000 VND
Deposit Debit
Balance inquiry
Yêu cầu dịch vụ
Balance inquiry
Không gian phần
mềm
Thuộc
tính
name: Duc Binh
Balance: 2.000.000 VND
Deposit() Withdraw()
checkBalance()
Hành động
Hành động
Account object
User object
Gửi thông điệp
checkBalance()
29. 29
Lớp
• Một lớp là một thiết kế (blueprint) hay mẫu
(prototype) cho các đối tượng cùng kiểu
• Ví dụ: lớp XeDap là một thiết kế chung cho nhiều đối tượng
xe đạp được tạo ra
• Lớp định nghĩa các thuộc tính và các phương thức
chung cho tất cả các đối tượng của cùng một loại nào
đó
• Một đối tượng là một thể hiện cụ thể của một lớp.
• Ví dụ: mỗi đối tượng xe đạp là một thể hiện của lớp XeDap
• Mỗi thể hiện có thể có những thuộc tính thể hiện khác
nhau
• Ví dụ: một xe đạp có thể đang ở bánh răng thứ 5 trong khi
một xe khác có thể là đang ở bánh răng thứ 3.
30. 30
Ví dụ
Lớp Xe đạp
Khai báo cho lớp
XeDap
Đối tượng của lớp
XeDap
31. 31
Lớp và Đối tượng
Attribute
name: Duc Binh
Balance: 2.000.000 VND
Deposit() Withdraw()
checkBalance()
operation
Account object of Mr Duc Binh
Attribute
name: Thu Lan
Balance: 1.000.000 VND
Deposit() Withdraw()
checkBalance()
operation
Account object of Mrs Thu Lan
Account Class (model of objects)
Attribute
Definition of member variable
String name;
long balance;
void deposit(int money);
void withdraw()
int checkBalance()
Method definition
operation
INSTANTIATE
33. 33
Tương tác giữa các đối tượng
• Các đối tượng trong thế giới thực có thể tương
tác được với nhau
• Trong lập trình
• Các đối tượng giao tiếp với nhau bằng cách gửi thông
điệp (message)
Tương tự với gọi hàm?
34. 34
Gọi hàm vs. Gửi thông điệp
• Gọi hàm (call function)
• Chỉ ra chính xác đoạn mã nào sẽ được thực hiện.
• Chỉ có duy nhất một sự thực thi của một hàm với một tên
nào đó.
• Không có hai hàm trùng tên
• Gửi thông điệp (send message)
• Yêu cầu một dịch vụ từ một đối tượng và đối tượng sẽ
quyết định cần phải làm gì
• Các đối tượng khác nhau sẽ có các cách thực thi các
thông điệp theo cách khác nhau.
35. 35
Thông điệp vs. Phương thức
• Thông điệp
• Được gửi từ đối tượng này đến đối tượng kia, không bao
gồm đoạn mã thực sự sẽ được thực thi
• Phương thức
• Thủ tục/hàm trong ngôn ngữ lập trình cấu trúc
• Là sự thực thi dịch vụ được yêu cầu bởi thông điệp
• Là đoạn mã sẽ được thực thi để đáp ứng thông điệp
được gửi đến cho đối tượng
36. Các nguyên lý cơ bản
Trừu tượng hóa, đóng gói, module hóa, phân
cấp.
4
37. 37
Các nguyên lý cơ bản
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Trừu tượng
hóa
Đóng gói
Module
hóa
Phân cấp
38. 38
Trừu tượng hóa
• Trừu tượng hóa
• Là quá trình loại bỏ đi các thông tin cụ thể và giữ lại
những thông tin chung.
• Tập trung vào các đặc điểm cơ bản của thực thể, các đặc
điểm phân biệt nó với các loại thực thể khác.
• Phụ thuộc vào góc nhìn
• Quan trọng trong ngữ cảnh này nhưng lại không có ý nghĩa
nhiều trong ngữ cảnh khác.
41. 41
Đóng gói
• Đóng gói
• Che giấu, ẩn đi chi tiết thực hiện bên trong
• Cung cấp cho thế giới bên ngoài một giao diện
• Người dùng không phụ thuộc vào việc sửa đổi sự thực
thi bên trong
42. 42
Đóng gói
• Cho phép điều khiển
• Việc sử dụng đối tượng
được kiểm soát thông
qua các method public
• Hỗ trợ sự thay đổi
• Việc sử dụng đối tượng
không bị ảnh hưởng
nếu dữ liệu nội tại
(private) bị thay đổi
Withdraw( )
Deposit( )
dollars 12
cents 56
Withdraw( )
Deposit( )
balance
12.56
43. 43
Module hóa
• Module hóa
• Chia nhỏ hệ thống phức tạp thành những thành phần
nhỏ có thể quản lý được.
• Cho phép người dùng hiểu được về hệ thống.
44. 45
Module hóa
• Chia nhỏ một hệ thống phức
tạp thành các mô đun nhỏ
hơn.
Hệ thống quản
lý xuất nhập
sách
Hệ thống quản lý siêu
thị sách
Hệ thống
kế toán
Hệ thống
quản lý
nhân viên
45. 46
Phân cấp
• Phân cấp
• Xếp hạng hay xếp thứ tự các mức trừu tượng vào một
cấu trúc cây
• Tổ chức để phân loại. Sử dụng phân cấp rất dễ dàng
nhận ra sử giống và khác nhau giữa các đối tượng
46. 47
Phân cấp
Động vật
Người
Học sinh Sinh viên
Công
nhân
Chó Mèo Gà Thỏ
Tăng mức độ trừu tượng hóa
Giảm mức độ trừu tượng hóa
47. Phân tích thiết kế hướng
đối tượng
Object Oriented Analysis and Design (OOAD)
5
48. 49
Phân tích thiết kế
hướng đối tượng
• Phương pháp luận (methodology) trong PT&TK
phần mềm thông thường được định nghĩa như là
một tập các quá trình và thao tác để tìm và khám
phá cách có thể giải quyết được bài toán phần
mềm.
• Một trong các phương pháp hiệu quả nhất để
phát triển phần mềm.
49. 50
Phát triển phần mềm
• Sáu giai đoạn
• Giai đoạn 0: Lập kế hoạch (make a plan)
• Giai đoạn 1: Xác định mục tiêu - làm gì (what are we
making)
• Giai đoạn 2: Xác định cách làm thế nào (how to build it)
• Giai đoạn 3: Xây dựng phần lõi - Building the core
• Giai đoạn 4: Lặp lại (hiệu chỉnh) các trường hợp sử dụng
• Giai đoạn 5: Phát triển (evolution)
50. 51
Xác định mục tiêu
• Giai đoạn 1: Xác định mục tiêu - làm gì (what are we
making)
• Trong giai đoạn này chúng ta có nhiệm vụ xác định cụ
thể các mục tiêu, chức năng và nhiệm vụ mà phần
mềm chúng ta cần xây dựng phải đáp ứng.
• Trong phương pháp lập trình cổ điển hướng thủ tục
người ta gọi giai đoạn này là giai đoạn tạo ra “phân
tích yêu cầu và mô tả hệ thống” (requirements analysis
and system specification).
• Trong PT&TK hướng đối tượng người ta sử dụng các
ký pháp và kỹ thuật Use case để mô tả các công việc
này.