关于Java通用方法(待补充)

通用方法

①Computable界面
Java的界面由关键字interface表示,它由若干常数(static final 数据成员)和若干方法头(无执行代码)组成,Computable界面定义如下:

public interface Computable{
	/** @return this+x  */
	public Object add(Object x);
	/** @return this-x   */
	public Object subtract(Object x);
	/** @return this*x  */
	public Object multiply(Object x);
	/** @return this/x  */
	public Object divide(Object x);
	/** @return mod(this,x)  */
	public Object mod(Object x);
	/** @return this+=x  */
	public Object increment(Object x);
	/** @return this-=x  */
	public Object decrement(Object x);
	/** @return ()  */
	public Object zero(.);
	/**  @return 1  */
	public Object identity();
}

下面的方法可用于计算一维整形**a[ ]**的前n个数之和:

public static int sum(int []a,int n){
	int sum=0;
	for(int i=0;i<n;i++)
			sum+=a[i];
	return sum;
}

利用Computable可以使方法sum通用化:

public static Computable sum(Computable []a,int n){
	if(a.length==0) return null;
	Cpmputable sum =(Computable) a[0].zero();
	for(int i=0;i<n;i++)
			sum.increment(a[i]);
	return sum;
}

②java.lang.Comparable界面
此界面中唯一的方法头compareTo可用于比较两个元素的大小。
如:(返回a-b的符号)

java.lang.Comparable.x.compareTo(y) 

x<y时返回-1
x=y返回0
x>y时返回1

Operable界面
有些方法同时需要ComputableComparable界面支持,为此定义Operable界面:

public interface Operable extends Computble,Comparable
{}

java中这种没有常数也没有方法头的界面称为标记界面

④自定义包装类
由于Java的包装类(如Integer)已经定义为final型,无法再定义其子类作为进一步扩充,因此可以自定义包装类,如MyInteger

public static MyInteger implements Operate{
	//整数值
	private int value;
	//构造方法
	public MyInteger(int v){
		value=v;
	}
	//界面方法
	/** @return this+x */
	public Object add(Object x){
		return new MyInteger(value+((MyInteger) x).value)
	}
	//界面方法
	public int compareTo(object x){
		int y=((MyInteger) x).value;
		if(value<y) return -1;
		if(value==y) return 0;
		retuen 1;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值