📜  用示例列出Java中的接口(1)

📅  最后修改于: 2023-12-03 15:27:13.379000             🧑  作者: Mango

Java中的接口

在Java中,接口(interface)是一种定义了一组方法但没有实现的抽象数据类型。接口和抽象类类似,但是接口只能包含抽象方法、静态常量和默认方法,不能包含变量和构造方法。接口的作用是定义一套规范,让其他类来实现这个规范,从而实现代码的解耦和重用。

下面是一些Java中常用的接口,以及它们的示例:

Comparable

Comparable接口定义了一个compareTo()方法,用于比较两个对象的大小。如果一个类实现了Comparable接口,就可以通过Collections.sort()方法对其进行排序。

public interface Comparable<T> {
    public int compareTo(T o);
}

class Person implements Comparable<Person> {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public int compareTo(Person o) {
        return age - o.age;
    }
}

List<Person> people = new ArrayList<>();
people.add(new Person("Tom", 30));
people.add(new Person("Mary", 25));
Collections.sort(people);
Runnable

Runnable接口表示一个可运行的任务,它只有一个run()方法,用于执行任务。

public interface Runnable {
    public void run();
}

class MyTask implements Runnable {
    public void run() {
        System.out.println("This is my task.");
    }
}

Thread t = new Thread(new MyTask());
t.start();
ActionListener

ActionListener接口用于处理动作事件。当用户执行某个操作时(如点击按钮),就会触发动作事件,然后ActionListener就会执行相应的逻辑。

public interface ActionListener extends EventListener {
    public void actionPerformed(ActionEvent e);
}

class MyButtonActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        System.out.println("Button clicked");
    }
}

JButton btn = new JButton("Click me");
btn.addActionListener(new MyButtonActionListener());
Iterable

Iterable接口表示能够被迭代的集合。它有一个iterator()方法,返回一个Iterator对象,用于遍历集合中的元素。

public interface Iterable<T> {
    public Iterator<T> iterator();
}

class MyIterable implements Iterable<Integer> {
    private List<Integer> list = new ArrayList<>();

    public void add(int i) {
        list.add(i);
    }

    public Iterator<Integer> iterator() {
        return list.iterator();
    }
}

MyIterable iterable = new MyIterable();
iterable.add(1);
iterable.add(2);
iterable.add(3);
for (Integer i : iterable) {
    System.out.println(i);
}
Closeable

Closeable接口表示一个可关闭的资源,如文件或网络连接。它有一个close()方法,用于关闭资源。当需要在代码中创建一个可关闭的资源时,应该让该资源实现Closeable接口。

public interface Closeable extends AutoCloseable {
    public void close() throws IOException;
}

class MyResource implements Closeable {
    public void close() throws IOException {
        System.out.println("Close my resource.");
    }
}

try (MyResource r = new MyResource()) {
    // do something
}

以上是一些Java中常用的接口。使用接口可以让代码更加规范、灵活和容易重用,同时也能够满足不同场景的需要。