首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实现和接口

实现和接口
EN

Stack Overflow用户
提问于 2012-02-26 00:30:09
回答 1查看 464关注 0票数 0

我试着查阅了教程和视频,我理解了实现的作用,尽管我对如何实现Java库中的类感到有点困惑。在我的家庭作业中,我假设使用DataSet类,并使其接受可比较的对象。根据对象的不同,程序应该记录最小和最大值,在这种情况下,我假设使用字符串。我不确定是否需要任何类来实现可比较接口,所以我创建了两个类,以防我需要这样做。我真正的问题是,如何在tester类中创建一个字符串变量,以便实际读取该对象并将其与另一个对象进行比较?提前谢谢。

代码语言:javascript
复制
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它已经是一个标准类,所以我不太确定是否使用它

代码语言:javascript
复制
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());
 }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-26 00:50:17

接口是一种约定,它表明您的类包含接口中实现的所有方法。在本例中为CompareTo(object other)。String类已经实现了可比较接口,因此您不需要自己的类。我认为你的数据集类应该是这样的:

代码语言:javascript
复制
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是一个泛型类型,在本例中它应该是字符串,下面是如何创建新数据集的方法:DataSet<String> ds = new DataSet<String>;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9445784

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档