I – Overloading
- Trong một class có thể có nhiều phương thức cùng tên nhưng khác nhau về danh sách tham số (kiểu, số lượng) được gọi là overload.
- Ví dụ:
public void method(int x) {}
public void method(float x) {}
public int method(int y) {} // không hợp lệ
Các lời gọi method(5), method(5f) là khác nhau
II – Overriding
- Nếu lớp con có phương thức giống (tham số và kiểu trả về) phương thức lớp cha được gọi là verride.
- Phương thức override phải có quyền truy xuất >= phương thức bị override
- Phương thức override không được phép quăng loại trừ không hợp lệ đối với phương thức bị override
- Để gọi phương thức bị override của lớp cha ta dùng super.xxx(…) trong đó xxx(…) là tên phương thức.
- Ví dụ:
Class C
{
protected int add(int x, int y) throws IOException{}
}
Class C1 extends C
{
protected int add(int x, int y) throws IOException{} //?
public int add(int x, int y) throws FileNotFoundException{} //? public int add(int x, int y) throws Exception{} //? private int add(int x, int y) throws IOException{} //?
}
III – Interface
- Là bản khai báo các phương thức, biến để class nào thực hiện thì phải viết đầy đủ các phương thức này cũng như trong super interface.
- Khai báo interface:
<modifiers> interface <InterfaceName> [extends SuperInterface]
{
// Các khai báo phương thức và biến
}
- Thực hiện : sử dụng [implements <InterfaceName>]
- Ví dụ 1: class C implements Runnable, Serializable{…}
Runnable, Serializable : là các interface
- Các phương thức trong interface chỉ được phép dùng modifier public để định nghĩa.
- Không như abstract class, interface không cho phép viết một phương thức đầy đủ.
- Một class chỉ thừa kế một class duy nhất nhưng có thể thực hiện nhiều interface khác nhau.
- Nếu bỏ qua một số phương thức nào đó của interface thì class thực hiện phải được khai báo abstract
- Ví dụ 2:
interface ISecurity{
public boolean login(String account, String passworld);
}
interface IBAcount extends ISecurity{
public void guiTien(int money);
public void rutTien(int money);
}
class BankAccount implements IBAccount, Runnable{
public boolean login(String acc, String pass){…} // của ISecurity
public void guiTien(int money){…} // của IBAcount
public void rutTien(int money){…} // của IBAcount public void run(){…} // của Runnable
public void rutTienUSD(int usdMoney){…} // Phương thức mới
}
IV – Exception (LoạI trừ)
- Là lỗi xuất hiện trong quá trình chương trình thực hiện của đoạn code. Nếu không xử lý thì chương trình có thể bị dừng.
- Sau đây là một số loại trừ:
FileNotFoundException : Mở file không có
NullPointerException : Gọi phương thức khi đối tượng null
NumberFormatException : Chuyển chuỗi không phải số sang số
ArrayIndexOutOfBounds : Truy xuất phần tử ngoài phạm vi mảng,…
- Cơ chế bắt loại trừ như sau:
try{
// Code có khả năng xảy ra loại trừ [T]
}
catch(Exception1 e1){
// Xử lý loại trừ Exception1 [E1]
}
..
catch(ExceptionN eN){
// Xử lý loại trừ ExceptionN [EN]
}
finally{
// Xử lý bất chấp có loại trừ hay không [F]
}
// Xử lý sau loại trừ [S]
- Quy trình hoạt động:
+ Thực hiện:
. Có loại trừ xảy ra
Có bắt : -> [Ei] -> [F] -> [S]
lKhông bắt : -> [F]
. Không có loại trừ : -> [F] -> [S]
+ Có thể chia loại trừ thành 2 loạI:
Các loại trừ con cháu của RuntimeException chỉ xảy ra trong khi chạy. Vì vậy không yêu cầu phải bắt mà vẫn dịch tốt.
Còn lại : yêu cầu phải bắt mới dịch được
- Ví dụ:
String[] numbers = {“abc”, “123”, “cdf”};
int i = 2;
try{
FileInputStream fis = new FileInputStream(“aaa.txt”);
Integer.parseInt(numbers[i]);
}catch(IOException ioe){
System.out.println(“Lỗi mở file !”);
}catch(NumberFormatException nfe){
System.out.println(“Numbers[“+i+”] không phải số !”);
}finally{
System.out.println(“Xong try-catch rồi !”);
}
System.out.println(“Biến number là số !”);
- Dùng throw new Exception để quăng ra loại trừ
pubic void method(String file) throws IOException{
…
throw new IOException(“Noi dung exception !”);
…
}
- Tạo lớp loại trừ mới
class InvalidException extends IOException{
public InvalidException(){
super(“Khong hop le !”);
}
public InvalidException(String msg){
super(msg);
}
}
--------------------
- Trong một class có thể có nhiều phương thức cùng tên nhưng khác nhau về danh sách tham số (kiểu, số lượng) được gọi là overload.
- Ví dụ:
public void method(int x) {}
public void method(float x) {}
public int method(int y) {} // không hợp lệ
Các lời gọi method(5), method(5f) là khác nhau
II – Overriding
- Nếu lớp con có phương thức giống (tham số và kiểu trả về) phương thức lớp cha được gọi là verride.
- Phương thức override phải có quyền truy xuất >= phương thức bị override
- Phương thức override không được phép quăng loại trừ không hợp lệ đối với phương thức bị override
- Để gọi phương thức bị override của lớp cha ta dùng super.xxx(…) trong đó xxx(…) là tên phương thức.
- Ví dụ:
Class C
{
protected int add(int x, int y) throws IOException{}
}
Class C1 extends C
{
protected int add(int x, int y) throws IOException{} //?
public int add(int x, int y) throws FileNotFoundException{} //? public int add(int x, int y) throws Exception{} //? private int add(int x, int y) throws IOException{} //?
}
III – Interface
- Là bản khai báo các phương thức, biến để class nào thực hiện thì phải viết đầy đủ các phương thức này cũng như trong super interface.
- Khai báo interface:
<modifiers> interface <InterfaceName> [extends SuperInterface]
{
// Các khai báo phương thức và biến
}
- Thực hiện : sử dụng [implements <InterfaceName>]
- Ví dụ 1: class C implements Runnable, Serializable{…}
Runnable, Serializable : là các interface
- Các phương thức trong interface chỉ được phép dùng modifier public để định nghĩa.
- Không như abstract class, interface không cho phép viết một phương thức đầy đủ.
- Một class chỉ thừa kế một class duy nhất nhưng có thể thực hiện nhiều interface khác nhau.
- Nếu bỏ qua một số phương thức nào đó của interface thì class thực hiện phải được khai báo abstract
- Ví dụ 2:
interface ISecurity{
public boolean login(String account, String passworld);
}
interface IBAcount extends ISecurity{
public void guiTien(int money);
public void rutTien(int money);
}
class BankAccount implements IBAccount, Runnable{
public boolean login(String acc, String pass){…} // của ISecurity
public void guiTien(int money){…} // của IBAcount
public void rutTien(int money){…} // của IBAcount public void run(){…} // của Runnable
public void rutTienUSD(int usdMoney){…} // Phương thức mới
}
IV – Exception (LoạI trừ)
- Là lỗi xuất hiện trong quá trình chương trình thực hiện của đoạn code. Nếu không xử lý thì chương trình có thể bị dừng.
- Sau đây là một số loại trừ:
FileNotFoundException : Mở file không có
NullPointerException : Gọi phương thức khi đối tượng null
NumberFormatException : Chuyển chuỗi không phải số sang số
ArrayIndexOutOfBounds : Truy xuất phần tử ngoài phạm vi mảng,…
- Cơ chế bắt loại trừ như sau:
try{
// Code có khả năng xảy ra loại trừ [T]
}
catch(Exception1 e1){
// Xử lý loại trừ Exception1 [E1]
}
..
catch(ExceptionN eN){
// Xử lý loại trừ ExceptionN [EN]
}
finally{
// Xử lý bất chấp có loại trừ hay không [F]
}
// Xử lý sau loại trừ [S]
- Quy trình hoạt động:
+ Thực hiện:
. Có loại trừ xảy ra
Có bắt : -> [Ei] -> [F] -> [S]
lKhông bắt : -> [F]
. Không có loại trừ : -> [F] -> [S]
+ Có thể chia loại trừ thành 2 loạI:
Các loại trừ con cháu của RuntimeException chỉ xảy ra trong khi chạy. Vì vậy không yêu cầu phải bắt mà vẫn dịch tốt.
Còn lại : yêu cầu phải bắt mới dịch được
- Ví dụ:
String[] numbers = {“abc”, “123”, “cdf”};
int i = 2;
try{
FileInputStream fis = new FileInputStream(“aaa.txt”);
Integer.parseInt(numbers[i]);
}catch(IOException ioe){
System.out.println(“Lỗi mở file !”);
}catch(NumberFormatException nfe){
System.out.println(“Numbers[“+i+”] không phải số !”);
}finally{
System.out.println(“Xong try-catch rồi !”);
}
System.out.println(“Biến number là số !”);
- Dùng throw new Exception để quăng ra loại trừ
pubic void method(String file) throws IOException{
…
throw new IOException(“Noi dung exception !”);
…
}
- Tạo lớp loại trừ mới
class InvalidException extends IOException{
public InvalidException(){
super(“Khong hop le !”);
}
public InvalidException(String msg){
super(msg);
}
}
--------------------
Đăng nhận xét