java的接口使用示例

下面给出接口使用的两个示例分别是:

1)接口与回调

2)Comparator接口

首先是接口与回调

回调是一种常见的程序设计模式。在这种模式中,可以指出某个特定事件发生时应该采取的动作。


在java.swing包中有一个Timer类,可以使用它在到达给定时间间隔时发出通告,调用传入到这个类中的另一个类的actionPerformed方法,当然,这个方法是接口ActionLisener中声明的,所以要想使用Timer类回调某个类,就必须在某个类中实现ActionListener接口。


Toolkit类中静态方法getDefaultToolkit可以获得默认工具箱。这个工具箱包含有关GUI环境的信息,其中的beep方法可以使操作系统发出通告声音。


在swing包中有个类叫做JOptionPane,其中有一个方法叫做showMessageDialog(Component parent,Onject message);可以显示一个包含一条消息和OK按钮的对话框。这个对话框将位于其parent组件的中央,如果parent为null,对话框将显示在屏幕中央。


基于这些,我们可以写出一个每隔3s在控制台打印一条当前时间并响一次铃声的程序:

代码:

package TimerTest;

import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;

import javax.swing.JOptionPane;
import javax.swing.Timer;

public class TimerTest_1 {

	public static void main(String[] args) {
		ActionListener listener=new TimePrinter();
		Timer t=new Timer(3000,listener);
		t.start();
		JOptionPane.showMessageDialog(null, "Quit program?");
		System.exit(0);
	}

}

class TimePrinter implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent arg0) {
		System.out.println("现在时间: "+new Date());
		Toolkit.getDefaultToolkit().beep();
	}
	
}

运行结果:



接下来是Comparator接口

String类中默认实现了Comparable<String>接口,但是是按照字典序的,如果我们想按照字符串的长度进行排序,就需要实现Comparator接口,因为在Arrays类中还有一个sort方法是接受一个数组对象和一个实现了Comparator接口的类的方法的,只要传入这两个参数,即可实现按照自定义顺序的字符串排序。

下面是一个例子:

代码:

package StringLengthCompare;

import java.util.Arrays;
import java.util.Comparator;

public class StringLengthCompareTest {

	public static void main(String[] args) {
		//首先比较两个字符串
		String s1="123";
		String s2="45678";
		Comparator<String> comp=new LengthComparator();
		if(comp.compare(s1, s2)>0) {
			System.out.println("\""+s1+"\"比"+"\""+s2+"\""+"长");
		}else if(comp.compare(s1, s2)==0) {
			System.out.println("\""+s1+"\"和"+"\""+s2+"\""+"一样长");
		}else {
			System.out.println("\""+s1+"\"比"+"\""+s2+"\""+"短");
		}
		
		//在Arrays中还有另一个版本的分类方法可以这样用:
		String[] ss={"123","1234","12","12345678","12345","1234"};
		System.out.println("排序前的数组:"+Arrays.toString(ss));
		Arrays.sort(ss, new LengthComparator());
		System.out.println("排序后的数组:"+Arrays.toString(ss));
	}

}

class LengthComparator implements Comparator<String>{
	@Override
	public int compare(String arg0, String arg1) {
		return arg0.length()-arg1.length();
	}
}

运行结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_Kirito

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值