Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sơ Đồ Tư Duy Tuần 2(Module 2)(1), Class chỉ khai báo một lần(không…
Sơ Đồ Tư Duy Tuần 2(Module 2)(1)
Arrays and methods in Java
Access modifier: Quy định của method
Statisc: Quy định tính chất của method(có thể gọi thông qua đối tượng hoặc qua tên lớp...)
Return Type.
Kiểu trả về có 2 loại:
Không có kiểu trả về dùng từ khóa void
Có kiểu trả về: kiểu nguyên thủy, kiểu đối tượng, array,...
(*) Nếu có kiểu trả về thì thuộc phần body phải có từ khóa return và kiểu return phải dùng kiểu dữ liệu ở đầu method
MethodName: động từ, danh động từ, tuân thủ quy tắt CalmelCase
list parameter: tham số truyền vào, có thể hoạt động không.
Classes and Objects in Java
Constructor trong java và đặc điểm của constructor
Là phương thức dùng để tạo đối tượng
Tên Constructor phải cùng với tên class
Không có kiểu trả về
Trong một class thì có thể có nhiều Constructor
Mặc định nếu không khai báo constructor thì Java sẽ cung cấp một constructor mặc định không có tham số-body rỗng
Có thể gọi constructor khác thông qua từ khóa this(...), và lưu ý this(..) phải được gọi đầu tiên trong nội dung của phương thức khởi tạo
OPP là gì? So sánh class và object
OOP(Object Oriented Programming) là kỉ thuật lập trình, có nhiệm vụ ánh xạ các đối tượng có thế giới thực vào trong các đối tượng lập trình
So sánh constructor và method
Method
Constructor
Access modifier, static method, static property
Access Modifier
Phạm vi truy cập
private: trong class
default: trong class, trong package
protected: trong class, trong package, ngoài package nếu class đó có mối quan hệ kế thừa(subclass)
public: trong class, trong hoặc ngoài package,..(toàn bộ project)
Tính báo đóng(Encapsulation)
Là kĩ thuật dùng để ẩn dấu thông tin của đối tượng chỉ hiển thị những thông tin cần thiết.
Mục đích:
Bảo vệ trạng thái bên trong của đối tượng
Giảm độ phức tạp của chương trình
Để đạt được tính báo đóng thì dùng
Access Modifier
Getter setter
Static là gì? Mục đích sử dụng
Là từ khóa dùng để khai báo thuộc tính, phương thức được khai báo bằng static sẽ chịu sự quản lý của class-không phải của đối tượng.
Truy cập thành phần static(thuộc tính, phương thức,...) thông qua tên class(nên dùng), hoặc có thể thông qua đối tượng.
=> Có thể truy xuất các thành phần static mà không cần khởi tạo đối tượng
Mục đích:
Định nghĩa thuộc tính, phương thức dùng chung cho toàn bộ đối tượng
Tạo ra các lớp tiện ích
Các ràng buộc khi sử dụng
Phương thức static chỉ có thể gọi stac khác
Phương thức static chỉ có thể truy cập được biến static
Dùng khối static {} để khởi tạo giá trị cho biến static
Các loại biến trong java
Có 3 loại biến:
Biến local(cục bộ)
Biến khai báo bên trong method, constructor hoặc các block
Biến local được tạo khi mà method, constructor, block được gọi, và bị hủy khi mà method, constructor thực hiện xong
Biến instance(toàn cục)
Biến toàn cục được tạo khi mà đối tượng được khởi tạo qua từ khóa "new", và bị hủy khi đối tượng bị hủy
Biến static trong java
Khai báo từ khóa "Static"
Biến Static khi được tạo khi chương trình bất đầu chạy và bị hủy khi chương trình dừng
Tham trị, tham chiếu.
Tham trị(passed by value)
Áp dụng cho kiểu nguyên thủy
Giá trị của biến trước và sau khi gọi
Tham chiếu(passed by reference)
Áp dụng cho kiểu dữ liệu đối tượng tham chiếu Array
Giá trị của biến sau khi gọi method có thể bị thay đổi
*Trong Java là truyền tham chiếu
Inheritance
Tính kế thừa là gì? Đặc điểm kế thừa trong Java
Kế thừa là cơ chế cho phép một lớp con sử dụng lại các đặc điểm và hành vi đã được định nghĩa ở lớp cha.
Mục đích: Tái sử dụng source code
Mối quan hệ giữa lớp cha và lớp con là is-a(x...là một...y)
Lớp con chỉ được phép sở hữu tài sản(thuộc tính, method) public default(nếu cha và con cùng package, protected)
-> Lớp con không thể truy cập tài sản private của lớp cha
Lớp con không kế thừa Constructor lớp cha
Java không hỗ trợ đa kế thừa
Từ khóa final và supper
Supper: Được sử dụng ở lớp con để gọi đến Constructor, thuộc tính, phương thức ở lớp cha
Final: Dùng để ngăn cản kế thừa(tạo lớp vô sinh) dùng final với method để ngăn cản việc ghi đè lớp con.
Lớp Obecjt
Lớp Object là lớp gốc của tất cả các lớp trong java
To-String(): Là phương thức trả về chuỗi biểu diễn thông tin đối tượng
Equals(): Là định nghĩa quy luật so sánh hai đối tượng như thế nào được gọi là bằng nhau(bằng nhau theo tiêu chí thuộc tính nào?)
hashCode(): trả về mã băm của đối tượng
Tính đa hình(Polymorphirm)
Là khả năng một đối tượng có thể hiện hành vi theo nhiều cách khác nhau tùy vào thuộc tính và ngũ cảnh
So sánh Overriding và Overloading
Overloading(nạp chuồng)
Overriding(ghi đè)
Là cơ chế cho phép lớp con định nghĩa lại nội dụng của các phương thức đã có trước đó ở lớp cha
Phương thức Overriding phải cùng tên, cùng danh sách tham số, cùng kiểu trả về(sẽ có trường hợp khác kiểu...)
Access modifier ở phương thức lớp con phải có level bằng hoặc cao hơn với lớp cha
Xảy ra khi trong class có mối quan hệ kế thừa(is-a)
Đa hình ở runtime
1 more item...
Là cơ chế cho phép một lớp định nghĩa ra nhiều phương thức cùng tên, nhưng khác tham số truyền vào
Xảy ra 1 class
Đa hình tại complier
Abstract Class & Interface
Tính trừu tượng(Abstractrion).
Tính trừu tượng ẩn đi các chi tiết của trình triển khai , chỉ hiển thị tính năng/ kết quả cho người dung-> chỉ quan tâm đến kết quả đạt được, không quan tâm cách thực hiện/implement.
Trong java tính trừu tượng được thể hiện qua Abstraction class và interface.
Abstract class là gì? Các đặc điểm của interface.
Abstrac class là class có tính trừu tượng cao đến mức không thể tạo được đối tượng.
Các tính chất:
Không thể tạo được đối tượng.
Một lớp chứa method abstract thì bắt buộc lớp đó phải là lớp abstract(ngược lại thì không).
Lớp abstract có thể chứa các thuộc tính và method bình thường.
Không được dùng từ khóa final cho abstract class.
Lớp abstract có thể extends từ lớp abstract class khác(không cần phải overwite method abstract của lớp cha).
Interface là gì? Các đặc điểm của interface.
Interface là một bản thiết kế của một lớp, cung cấp các hành vi bổ sung cho nhiều lớp triển khai đó.(Dùng từ khóa implements).
Không thể khởi tạo đối tượng interface.
Các trường trong interface đều là hằng số.
Method toàn bộ là abstract.Không có Contructor.
Đại diện cho mối quan hệ has-a(like-a).
Có thể extend từ một hoặc nhiều interface khác.
Clean Code & Refactoring
Khái niệm clean code và đặc điểm của clean code
Clean code là nói về(mã sạch) là thuật ngữ để chỉ đến những mã nguồn tốt.
Các đặc điểm của clean code.
Dễ đọc
Đơn giản
Dễ cải tiến mở rộng sau này.
Tên class, method, biến,..
Thể hiện ý nghĩa
Ít phụ thuộc
Không trùng lặp
Đúng ý tưởng thiết kế.
Code smell và đặc điểm nhận biết
Mã smell là mã nguồn gây khó khăn cho việc đọc, bảo trì mở rộng
Đặt tên(tên class, biến, method,...) không đúng chuẩn
Method xử lí quá nhiều chức năng này cùng lúc
Method có nhiều tham số
Phương thức quá dài
Mã nguồn trùng lặp
Lạm dụng Comment
Đặt tên biến
Đặt tên thể hiện rõ ý nghĩa
Tránh gây hiểu nhầm.
Phát âm được.
Hạn chế viết tắt mã hóa.
Sử dụng tên đúng ngữ nghĩa tiếng Anh
Tên lớp
Phải danh từ
Bất đầu bằng chữ viết hoa(PascalCase)
*Tên phương thức
Tên danh từ + động từ, hoặc chỉ có 1 từ
Theo quy tắc CamelCasce
Demo refactoring
Tái cấu trúc mã nguồn làm cho mã nguồn trở thành"Clean code", nhưng vẫn đảm bảo không làm thay đổi tính đúng đắn ban đầu của chương trình
Kỹ thuật refeactoring
Đổi tên class, biến, Method
Tách biến bằng phương thức
Class chỉ khai báo một lần(không trùng)phạm vi cùng package
Dùng từ khóa class để khai báo
Class:
Class là khuôn mẫu định nghĩa thuộc tính hành vi chung tất cả đối tượng cùng loại.
Đối tượng có thể tạo nhiều lần
Dùng từ khóa new để khởi tạo đối tượng
Object:
Đối tượng là thể hiện cụ thể của một class
Kiểu trả về
Không có kiểu trả về.
Method có thể được gọi nhiều lần
Java không có cấp method mặc định
có thể giống hoặc khác với tên class.
Có hoặc ko có trả về.
Đặt tên
trùng tên với tên class.
Biên dịch
Nếu không khai báo java cung cấp ngầm định Constructor không tham số
Số lần gọi
Constructor chỉ được tạo 1 lần khi gọi đối tượng