现在,我有一个班级' Bag'实现导入的界面' USet'
我的课程' Bag'如下:
package Bag;
import java.util.Iterator;
public class Bag implements USet<Integer>{
@Override
public Iterator<Integer> iterator() {
// TODO Auto-generated method stub
return null;
}
@Override
public int size() {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean add(Integer x) {
// TODO Auto-generated method stub
return false;
}
@Override
public Integer remove(Integer x) {
// TODO Auto-generated method stub
return null;
}
@Override
public Integer find(Integer x) {
// TODO Auto-generated method stub
return null;
}
@Override
public void clear() {
// TODO Auto-generated method stub
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Bag<Integer> myBag=new USet<Integer>();
}
}
我无法在我的主电话中调用我的课程或访问其中的方法。简单地说,我只想添加,删除我的Bag中的整数并创建我自己的排序方法。但是,由于这是一个抽象的接口,似乎我不能只是称之为。有工作吗?
作为参考,我导入的USet是:
package Bag;
public interface USet<T> extends Iterable<T> {
public int size();
public boolean add(T x);
public T remove(T x);
public T find(T x);
public void clear();
}
答案 0 :(得分:0)
这是执行此操作的代码。我相信这很简单,所以不需要解释。
package Bag;
import bag.USet;
import java.util.Iterator;
public class Bag implements USet<Integer> {
@Override
public Iterator<Integer> iterator() {
System.out.println("iterator called.");
return null;
}
@Override
public int size() {
System.out.println("size called.");
return 0;
}
@Override
public boolean add(Integer x) {
System.out.println("add called with " + x);
return false;
}
@Override
public Integer remove(Integer x) {
System.out.println("remove called with " + x);
return null;
}
@Override
public Integer find(Integer x) {
System.out.println("find called with " + x);
return null;
}
@Override
public void clear() {
System.out.println("clear called ");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Bag myBag = new Bag();
myBag.add(1);
myBag.add(2);
myBag.add(3);
int size = myBag.size();
}
}
<强> NB:强> 看看你的USet的代码,我想你打算有一个特殊的整数集。如果是这种情况,那么您的USet代码甚至不是一个集合,而是一个特殊的迭代器。要使其成为集合,您可以扩展Collection接口,也可以专门设置。在你的情况下,我相信它是你想要的一套。所以你的代码应该如下所示。
包装袋;
import java.util.HashSet;
public abstract class USet2 extends HashSet<Integer> {
}
和
package bag;
import java.util.Collection;
import java.util.Iterator;
public class Bag2 extends USet2 {
public Bag2() {
super();
}
@Override
public int size() {
return super.size();
}
@Override
public boolean isEmpty() {
return super.isEmpty();
}
@Override
public boolean contains(Object o) {
return super.contains(o);
}
@Override
public Iterator<Integer> iterator() {
return super.iterator();
}
@Override
public Object[] toArray() {
return super.toArray();
}
@Override
public <T> T[] toArray(T[] a) {
return super.toArray(a);
}
@Override
public boolean add(Integer e) {
return super.add(e);
}
@Override
public boolean remove(Object o) {
return super.remove(o);
}
@Override
public boolean containsAll(Collection<?> c) {
return super.containsAll(c);
}
@Override
public boolean addAll(Collection<? extends Integer> c) {
return super.addAll(c);
}
@Override
public boolean removeAll(Collection<?> c) {
return super.removeAll(c);
}
@Override
public boolean retainAll(Collection<?> c) {
return super.retainAll(c);
}
@Override
public void clear() {
super.clear();
}
}