不能在Java中的另一个类中使用类方法

时间:2019-09-06 23:41:09

标签: java

我试图在类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来修复它,但是它说它不能将其称为超类。(用整个代码编辑)

1 个答案:

答案 0 :(得分:1)

添加()来调用该方法。

if(i.data.getPrice()==p)