欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-12 16:35:33
...

通用方法

①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;
	}
}

上一篇: vue使用问题记录

下一篇: 桶排序