Thứ Ba, 27 tháng 6, 2017

[Thực tập] Buổi 2: Ôn lại kiến thức Java nền tảng

1. Từ khóa final
- Từ khóa final khi dùng trước một biến thì biến đó là hằng số không thể thay đổi giá trị
- Từ khóa final khi dùng trước một phương thức thì phương thức đó không thể ghi đè
- Khi đặt một biến là final và không khởi tạo thì làm sao để thay đổi giá trị của nó:
    Có thể thay đổi giá trị của biến chỉ trong constructor.
- Một lớp là final thì không thể kế thừa.
- Một tham số có thể là final nhưng giá trị của nó không thể thay đổi được.

2. Đa hình
  - Đa hình là kỹ thuật dùng để thực hiện một hành động theo nhiều cách khác nhau.
  Ví dụ:

class Animal{  
void eat(){System.out.println("an");}  
}  
  
class Dog extends Animal{  
void eat(){System.out.println("an hoa qua");}  
}  
  
class BabyDog extends Dog{  
void eat(){System.out.println("uong sua");}  
  
public static void main(String args[]){  
Animal a1,a2,a3;  
a1=new Animal();  
a2=new Dog();  
a3=new BabyDog();  
  
a1.eat();  
a2.eat();  
a3.eat();  
}  
} 
 
Kết quả: 
an
an hoa qua
uong sua
 
Ví dụ 2:
class Animal{  
void eat(){System.out.println("animal dang an...");}  
}  
  
class Dog extends Animal{  
void eat(){System.out.println("dog dang an...");}  
}  
  
class BabyDog1 extends Dog{  
public static void main(String args[]){  
Animal a=new BabyDog1();  
a.eat();  
}} 
 
Kết quả:
animal dang an
dog dang an
dog dang an
 
Kết quả như vậy vì lớp BabyDog1 không overide phương thức ăn của lớp Dog. 
Do đó lướp BabyDog1 sẽ dùng phương thức của lớp Dog.
 
 
 
3. Upcasting và Downcasting
Ví dụ:
class Animal{}
class Dog extends Animal{}
class Test{
public static void main(String args[]){ 
Animal a = new Dog(); // upcasting
Dog c = (Dog) a; //downcasting

//Truong hop error
// Animal a1  = new Animal();
//Dog d   = (Dog)  a1;
}
Downcasting là kiểu của lớp con tham chiếu đến đối tượng của lớp cha.

4. Abstract
- Lớp abstract class sẽ không tạo được một đối tượng vì nó là lớp không được khởi tạo. Để sử dụng abstract class cần phải có một lớp con kế thừa nó.
- Một số lưu ý khi sử dụng abstract class:
  •  Khi lớp có một phương thức là abstract thì class đó phải được định nghĩa là abstract.
  •  Khi một lớp kế thừa một abstract class thì lớp đó phải cài đặt toàn bộ phương thức abstract trong lớp nó kế thừa hoặc là định nghĩa lớp là abstract.
  • Cách khai báo một phương thức là abstract: Phương thức đó sẽ có từ abstract ở trước kiểu của phương thức và không có cài đặt phương thức, không có dấu ngoặc nhọn. Ví dụ:
    public abstract class Employee
    {
       private String name;
       private String address;
       private int number;
       
       public abstract double computePay();
       
       //Phan con lai cua dinh nghia class
    }
    
    

5. Interface   
 - Interface chỉ bao gồm một tập các phương thức abstract. 
- Mặc định các phương thức trong interface là public abstract. Còn các thuộc tính mặc định là public,static, final.
- Một số điều khác biệt giữa interface và class:
  • Không thể khởi tạo interface
  • Không chứa bất cứ hàm construct nào
  • Không kế thừa từ một lớp, nó chỉ được cài đặt bởi lớp implements nó
  • Không có các trường ngoại trừ các trường là public vừa là static và final
  • Một interface có thể kế thừa từ nhiều interface khác.
  • Interface có thể cho phép đa kế thừa. Có nghĩa là một class có thể implements nhiều interface khác nhau.
6. Package
Package để làm gì, tại sao phải dùng package. Pagkage dùng để: 
  • Kiểm soát truy nhập .
  • Xóa bỏ các xung đột về đặt tên.  
7. Unboxing và AutoBoxing
 AutoBoxing là trường hợp tự động chuyển từ kiểu dữ liệu nguyên thuỷ sang kiểu dữ liệu lớp Wrapper
Ví dụ:
public class WrapperExample1{  
public static void main(String args[]){  
//Chuyen doi int thanh Integer  
int a=20;  
Integer i=Integer.valueOf(a);//Chuyen doi int thanh Integer  
Integer j=a;//Day la autoboxing, bay gio compiler se viet la Integer.valueOf(a)  
  
System.out.println(a+" "+i+" "+j);  
}} 
 
Ngược lại thì chuyển từ kiểu dữ liệu lớp Wrapper về kiểu dữ liệu nguyên thủy là Unboxing.

 
 

Không có nhận xét nào:

Đăng nhận xét