Java 实现和接口
我试着查找教程和视频,我了解了实现的作用,尽管我对如何从Java库实现类有点困惑。在我的家庭作业中,我假设使用类DataSet,并使其接受可比较的对象。假设程序根据对象记录最小值和最大值,在本例中,我假设使用字符串。我不确定是否需要任何类来实现可比较的接口,所以我创建了两个类,以防万一。我真正的问题是如何在tester类中实际输入一个字符串变量来实际读取对象并将其与另一个对象进行比较?提前谢谢Java 实现和接口,java,interface,implementation,Java,Interface,Implementation,我试着查找教程和视频,我了解了实现的作用,尽管我对如何从Java库实现类有点困惑。在我的家庭作业中,我假设使用类DataSet,并使其接受可比较的对象。假设程序根据对象记录最小值和最大值,在本例中,我假设使用字符串。我不确定是否需要任何类来实现可比较的接口,所以我创建了两个类,以防万一。我真正的问题是如何在tester类中实际输入一个字符串变量来实际读取对象并将其与另一个对象进行比较?提前谢谢 public class Word implements Comparable { private S
public class Word implements Comparable
{
private String str;
public Word()
{
str = null;
}
public Word(String s)
{
str = s;
}
public int compareTo(Object other)
{
String n = (String) other;
return str.compareTo(n);
}
}
我不确定这两个类中的哪一个适合实现,尽管我认为下面的String类根本不能工作b/c它已经是一个标准类,所以我不太确定是否要使用它
public class String implements Comparable
{
public String s;
public String()
{
s = null;
}
public String(String str)
{
s = str;
}
public int compareTo(Object other)
{
String n = (String) other;
return s.compareTo(n);
}
}
public interface Comparable
{
public int compareTo(Object other);
}
public class DataSet
{
private Object maximum;
private Object least;
private Comparable compare;
private int count;
public DataSet(Comparable s)
{
compare = s;
}
public void add(Object x)
{
if(count == 0)
least = x;
if(count == 0 || compare.compareTo(x) >=0)
maximum = x;
else if(compare.compareTo(x) <0)
least = x;
count++;
}
public Object getMaximum()
{
return maximum;
}
public Object getLeast()
{
return least;
}
}
public class DataSetTester
{
public static void main(String[] args)
{
Comparable n = new Word("sand");
DataSet data = new DataSet(n);
data.add(new Word(man));
System.out.println("Maximum Word: " + data.getMaximum());
System.out.println("Least Word: " + data.getLeast());
}
}
公共类字符串实现了可比较的
{
公共字符串s;
公共字符串()
{
s=零;
}
公共字符串(字符串str)
{
s=str;
}
公共整数比较(对象其他)
{
字符串n=(字符串)其他;
返回s.compareTo(n);
}
}
公共界面可比
{
公共内部比较(对象其他);
}
公共类数据集
{
私有对象最大化;
私有对象最少;
私人可比比较;
私人整数计数;
公共数据集(可比)
{
比较=s;
}
公共无效添加(对象x)
{
如果(计数=0)
最小=x;
if(count==0 | | compare.compareTo(x)>=0)
最大值=x;
else if(compare.compareTo(x)接口是一个协定,表明类包含在接口中实现的所有方法。在这种情况下,compareTo(object other)
。String类已经实现了可比较的接口,因此您不需要自己的类。我认为您的数据集类应该如下所示:
public class DataSet<T implements Comparable>
{
private T maximum;
private T least;
private T count;
public void add(T x)
{
if(count == 0){
least = x;
maximum = x;
}
else if(least.compareTo(x) > 0)
least = x;
else if(maximum.compareTo(x) < 0)
maximum = x;
count++;
}
public T getMaximum()
{
return maximum;
}
public T getLeast()
{
return least;
}
}
公共类数据集
{
私人T最大值;
至少是私人的;
私人T计数;
公共无效添加(T x)
{
如果(计数=0){
最小=x;
最大值=x;
}
如果(与(x)>0相比,最小值)
最小=x;
否则如果(最大值与(x)<0)
最大值=x;
计数++;
}
公共T getMaximum()
{
返回最大值;
}
公共T getLeast()
{
回报最少;
}
}
T是一种泛型类型,在您的情况下,它应该是字符串,以下是创建新数据集的方法:
DataSet ds=new DataSet;
这很有帮助,但您知道如何将可比较对象添加到此类中,并在程序末尾接收字符串吗?如果创建新的DataSet,所有返回类型T的方法都将返回字符串。因此add方法将以字符串作为参数,getMaximum()将返回一个字符串。