You are on page 1of 31

Hàm 𝘀𝘁𝗿𝗹𝗲𝗻() sử dụng để tính độ dài của chuỗi.

Hàm 𝘀𝘁𝗿𝗰𝗮𝘁() sử dụng để nối 2 chuỗi. Hàm này nhận vào 2 tham số là chuỗi đích và chuỗi nguồn.
Hàm 𝘀𝘁𝗿𝗰𝗺𝗽() sử dụng để so sánh 2 chuỗi theo thứ tự từ điển. Hàm trả về 3 giá trị integer mọi
người cần quan tâm đó là:
0 ( 0 ): Giá trị bằng 0 khi cả hai chuỗi được tìm thấy giống hệt nhau.
Lớn hơn 0 ( >0 ): Giá trị lớn hơn 0 được trả về khi ký tự không khớp đầu tiên trong leftStr có giá
trị ASCII lớn hơn ký tự tương ứng trong rightStr
Nhỏ hơn 0 ( <0 ): Một giá trị nhỏ hơn 0 được trả về khi ký tự không khớp đầu tiên trong leftStr
có giá trị ASCII nhỏ hơn ký tự tương ứng trong rightStr.
Hàm 𝘀𝘁𝗿𝗰𝗽𝘆() sử dụng để copy nội dung của một string sang một string khác.

SERIES LẬP TRÌNH OOP


Abstraction: tính trừu tượng.
Tài liệu tham khảo: Oracle
 Tính trừu tượng là một ý tưởng trong lập trình hướng đối tượng, đó là ẩn các chi tiết triển khai
của một method. chúng ta chỉ cần quan tâm đến các thông tin thiết yếu như input, output, tên
method. Mà không cần quan tâm đến phần body của method đó thực hiện như thế nào.
VD: một chiếc xe máy chúng ta chỉ cần quan tâm khi bóp phanh là xe máy sẽ đi chậm lại, khi vặn
tay ga là xe máy sẽ tăng tốc. Chứ không cần quan tâm đến thực sự xe máy đã làm như thế nào để
thay đổi tốc độ khi chúng ta nhấm phanh, vặn ga.
 Trừu tượng hóa còn là một quy trình ở cấp độ thiết kế.
 Trong Java để thể hiện tính trừu tượng bằng cách sử dụng các abstract class và các interface.
 Abstracrt class phải được khai báo với một từ khóa abstract ở trước từ khóa class.
 Một method trừu tượng là một method không có phần thân (body code) mà chỉ cần khai báo
method.
 Một abstract class có thể có hoặc không có các method trừu tượng. trong đó có thể là các method
cụ thể có phần body code được triển khai cụ thể.
 Các method trừu tượng phải luôn được định nghĩa trong các lớp con. các lớp kế thừa lại abstract
class. do đó việc ghi đè trở thành bắt buộc.
 Bất kỳ class nào chứa một hoặc nhiều method trừu tượng bắt buộc phải được khai báo bằng từ
khóa abstract. Một abstract class không thể được khởi tạo trực tiếp bằng từ khóa new và nó có thể
có các hàm tạo.

 Tất cả các method trong interface đều là method trừu tượng. các method trừu trượng trong
interface đều mặc định là public.
 Các class để triển khai phần thân method bên trong interface, các class đều phải thực thi interface
đó bằng cách sử dụng từ khóa implements <name interface>.
Inheritance (Kế thừa)

 Ý tưởng kế thừa đơn giản nhưng mạnh mẽ: Khi bạn muốn tạo một class mới và đã có một class
bao gồm một số code mà bạn muốn, bạn có thể lấy class mới của mình từ class hiện có. Khi thực
hiện điều này, bạn có thể sử dụng lại các trường và phương thức của class hiện có mà không cần
phải tự viết (và debug!) chúng.

 Một class con kế thừa tất cả các thành phần(trường, phương thức và class lồng nhau) từ class
cha của nó. Các hàm tạo không phải là thành phần, vì vậy chúng không được kế thừa bởi các class
con, nhưng hàm tạo của class cha có thể được gọi từ class con. 
 MountainBike kế thừa tất cả các trường và phương thức của Bicycle, đồng thời thêm trường
seatHeight và một phương thức để đặt trường. Ngoại trừ hàm tạo, nó giống như bạn đã viết hoàn
toàn từ đầu một lớp MountainBike mới, với bốn trường và năm phương thức. Tuy nhiên, bạn không
phải làm tất cả công việc. Điều này sẽ đặc biệt có giá trị nếu các phương thức trong lớp Bicycle
phức tạp và mất nhiều thời gian để gỡ lỗi. 
 Một class con không kế thừa các thành phần private của class cha. Tuy nhiên, nếu class cha có
các phương thức pulic hoặc protected để truy cập các trường private của nó, thì class con cũng có
thể sử dụng các phương thức này.

 Một class lồng nhau có quyền truy cập vào tất cả các thành phần private của class kèm theo của
nó — cả trường và phương thức. Do đó, một class lồng là public hoặc protected được kế thừa bởi
một class con có quyền truy cập gián tiếp vào tất cả các thành phần private của class cha. 

POLYMORHISM (Tính Đa Hình)


OVERRIDING AND OVERLOADING
 Khả năng ghi đè phương thức của một lớp con cho phép một lớp kế thừa từ một lớp cha có hành
vi 'đủ gần' và sau đó sửa đổi hành vi khi cần. Phương thức ghi đè có cùng tên, số lượng và loại
tham số và kiểu trả về giống như phương thức mà nó ghi đè. Một phương thức ghi đè cũng có thể
trả về một kiểu con của loại được trả về bởi phương thức ghi đè. Kiểu con này được gọi là
covariant return type.

 Khi ghi đè một phương thức, bạn có thể muốn sử dụng chú thích @Override hướng dẫn trình
biên dịch rằng bạn định ghi đè một phương thức trong lớp cha. Nếu vì một lý do nào đó, trình biên
dịch phát hiện ra rằng phương thức này không tồn tại ở một trong các lớp cha, thì nó sẽ phát sinh
lỗi.

 Static Methods

 Sự khác biệt giữa ẩn static method và ghi đè instance method có ý nghĩa quan trọng:

- Phiên bản của instance method bị ghi đè được gọi là phiên bản trong lớp con.
- Phiên bản của static method bị ẩn được gọi tùy thuộc vào việc nó được gọi từ lớp cha hay lớp con.

 Như đã ví dụ, phiên bản của static method bị ẩn được gọi là phiên bản trong lớp cha và phiên
bản của instance method bị ghi đè được gọi là phiên bản trong lớp con
 Tên đứng trước super (trong ví dụ này là FlyCar hoặc OperateCar trong 1.3.3) phải đề cập đến
một superinterface trực tiếp xác định hoặc kế thừa một giá trị mặc định cho phương thức được gọi.
Hình thức gọi phương thức này không bị hạn chế trong việc phân biệt giữa nhiều interface được
implement có chứa các default method có cùng dạng định danh. Bạn có thể sử dụng từ khóa super
để gọi một default method trong cả class và interface.
 Các nạp chồng phương thức được phân biệt bởi số lượng và loại đối số được truyền vào
phương thức. Trong mẫu mã, draw(String s) và draw(int i) là các phương thức riêng biệt và duy
nhất vì chúng yêu cầu các loại đối số khác nhau.

 Bạn không thể khai báo nhiều hơn một phương thức có cùng tên, cùng số lượng và kiểu đối số,
bởi vì trình biên dịch không thể phân biệt chúng.

 Trình biên dịch không xem xét kiểu trả về khi phân biệt các phương thức, vì vậy bạn không thể
khai báo hai phương thức có cùng chữ ký ngay cả khi chúng có kiểu trả về khác nhau.

 Lưu ý : Các nạp chồng phương thức nên được sử dụng một cách tiết kiệm, vì chúng có thể làm
cho mã khó đọc hơn nhiều.

ENCAPSULATION (Tính Đóng Gói)

You might also like