Chào mừng bạn đến với Vimentor!

Hỏi đáp
Đăng ký

Interface trong lập trình Android

Vimentor Admin
Vimentor Admin
12 bài viết — 6 Người theo dõi |
0
0

Interface

Trong lập trình hướng đối tượng (Object Orient Programming), interface là một khái niệm khá trừu tượng. Có thể các bạn sẽ dễ dàng viết một Interface vì các quy tắc ngữ pháp của nó khá đơn giản. Trong bài viết này tôi muốn làm rõ vấn đề bản chất của interface là gì.

Bài viết gồm ba phần :

  1. Ví dụ minh họa interface trong đời sống
  2. Sử dụng Interface trong Java
  3. Kết luận

1. Ví dụ minh họa interface trong đời sống

Tôi sẽ đưa ra ví dụ sau: Trong khi học đại học, bạn được đào tạo để trở thành một Developer. Vì thế bạn có những kỹ năng như: phân tích thiết kế, code Android, Java, test… Tuy nhiên, ngoài thời gian học lập trình bạn vẫn có thể học những thứ khác. Vào một ngày đẹp trời, bạn đăng ký khóa học Người đàn ông hoàn hảo (Perfect man). Khóa học này dạy cách dẫn bạn gái đi shoping, cách chiều chuộng bạn gái, cách  XXX, …

Khi bạn đi phỏng vấn xin việc, Project Manager sẽ hỏi : Anh có thể là một developer chứ? Đương nhiên câu trả lời là có. Vì bạn đã từng học khóa học đó ở trường.

Khi tan giờ làm, người yêu đang chờ bạn. Cô ấy sẽ không cần một developer mà chỉ cần một perfect man: Anh có thể là một perfect man chứ ? Tất nhiên câu trả lời cũng là có.

Rõ ràng bạn vẫn là một người (Person) nhưng lại có thể trở thành Developer, hoặc perfect man trong các hoàn cảnh cụ thể. Bởi vì bạn đã được học những kỹ năng đó. Đến đây chúng ta có thể hình dung DeveloperPerfectMan chính là hình ảnh của Interface. Class Person implement (học các kỹ năng) 2 interface nói trên.

                 

 2. Sử dụng Interface trong Java

Từ ví dụ trên, dễ thấy, nếu class implement một interface thì :

  1. Phải thực hiện được tất cả các phương thức của interface.
  2. Có thể được xem như là interface đó.

Chi tiết code như sau

public interface Developer {
    void doCode();
    void doTest();
}

public interface PerfectMan {
    void doShopping();
    void doXXX();
}

Phần 1  “Phải thực hiện được tất cả các phương thức của interface.”  được minh họa qua đoạn code sau.

public class Person implements Developer,PerfectMan{

    @Override
    public void doCode() {
        //skill of Developer
    }

    @Override
    public void doTest() {
        //skill of Developer
    }

    @Override
    public void doShopping() {
        //skill of Perfect man
    }

    @Override
    public void doXXX() {
        //skill of Perfect man
    }
}

 

Và phần 2 “Nó có thể được xem như là interface đó” là đoạn code dưới đây :

public static void main() {
    Person you = new Person();

    // In this case, we need a developer
    doAsDeveloper(you);

    //In this case, we need a perfect man
    doAsPerfectman(you);
}

public static void doAsDeveloper(Developer developer) {
    developer.doCode();
    developer.doTest();
}

public static void doAsPerfectman(PerfectMan perfectMan) {
    perfectMan.doShopping();
    perfectMan.doXXX();
}

Chúng ta thấy cùng là đối tượng you (class Person), đều có thể truyền vào 2 phương thức cần các tham số khác nhau. (2 interface khác nhau)

3. Kết luận

Qua ví dụ và đoạn code trên, có lẽ các bạn đã hiểu bản chất của interface là gì. Đây là một khái niệm trừu tượng nhưng nếu tìm hiểu thật kỹ, tôi nghĩ nó hoàn toàn dễ hiểu và thực tế

** Nếu bạn muốn viết các nội dung đặt biệt thì hãy làm theo hướng dẫn sau

Xem thêm 10 bình luận
Viết blog mới của bạn
Báo lỗi trang
Đang tải