我试图在类OrderedList
中创建一个方法。方法findD()
要求我从类House
中获取价格,以便将其与p
进行比较。我在getPrice()
中创建了方法House
,但是无法在类OrderedList
中使用它。有没有办法在OrderedList
中使用它?另外,为什么我不能在main()
中正常使用我的OrderedList
?
package demo;
class House implements Comparable <House>{
int price;
String name;
House(String s,int p){
this.name=s;
this.price=p;
}
int getPrice() {
return price;
}
@Override
public int compareTo(House o) {
return (int) ((this.price)-(o.price));
}
public String toString(){
return name;
}
}
class OrderedList<House extends Comparable <House>>{
class ListNode {
House dato;
ListNode next;
}
ListNode first;
OrderedList(){
first=null;
}
void insert(House x) {
ListNode n= new ListNode();
n.dato=x;
ListNode p=first;
ListNode q=null;
while(p!=null&&p.dato.compareTo(x)<0) {
q=p;
p=p.next;
}
n.next=p;
if(q==null)
first=n;
else
q.next=n;
}
public House findD(int p) {
for(ListNode i =first;i!=null;i=i.next) {
//if(i.dato.getPrice()==p) return i.dato;
}
return null;
}
public String toString(){
String result="";
for(ListNode i =first;i!=null;i=i.next) {
result+=i.dato;
result+=",";
}
return result;
}
}
public class Test {
public static void main(String[] args) {
House a= new House("aaa",1000);
House b= new House("bbb",2000);
House c= new House("ccc",3000);
OrderedList lista=new OrderedList();
lista.insert(b);
lista.insert(c);
lista.insert(a);
System.out.println(lista.toString());
a.getPrice();
}
}
它只是说“ getPrice无法解析或不是字段”。
我以为我可以通过添加OrderedList extends House
来修复它,但是它说它不能将其称为超类。(用整个代码编辑)
答案 0 :(得分:1)
添加()
来调用该方法。
if(i.data.getPrice()==p)