Java 如何在不同的类上使用Arraylist

Java 如何在不同的类上使用Arraylist,java,oop,arraylist,Java,Oop,Arraylist,我试图将在不同类中创建的dog(nyHund)添加到我使用另一个类中的构造函数创建的Arraylist中,但每当我尝试在“register”类中使用Arraylist时,我都会收到无法解析Arraylist名称的错误 头等舱: public class Hund { private String namn; private int ålder; private double vikt; private String ras; public Hu

我试图将在不同类中创建的dog(nyHund)添加到我使用另一个类中的构造函数创建的Arraylist中,但每当我尝试在“register”类中使用Arraylist时,我都会收到无法解析Arraylist名称的错误

头等舱:

    public class Hund {

    private String namn;
    private int ålder;
    private double vikt;
    private String ras;

    public Hund(String hundnamn, int hundålder, String hundras, double hundvikt) {
        this.namn = hundnamn;
        this.ålder = hundålder;
        this.ras = hundras;
        this.vikt = hundvikt;
    }

    public String getNamn() {
        return namn;
    }

    public int getÅlder() {
        return ålder;
    }

    public double getSvanslängd() {
        if (ras=="tax"){
            return 3.7;
        }else{
            return ((vikt*ålder)/10);
        }
    }

    public String toString() {
        return namn + "\n" + ålder + "\n"+ras+"\n"+vikt+"\n"+getSvanslängd();
    }
}
二等舱

    import java.util.ArrayList;
public class testning {

    public static void main(String[] args) {
        Hund nyHund = new Hund("Daisy", 13, "labrador", 22.3);
        System.out.println(nyHund.toString());
        Register.läggTillHund(nyHund);



    }

}
第三类:

import java.util.ArrayList;

public class Register {



    public static void läggTillHund(Hund nyHund){
        hundRegister.add(nyHund);
        System.out.println(nyHund);



    }



    private Register(){
        ArrayList<Hund> hundRegister = new ArrayList<Hund>();
    }


}
import java.util.ArrayList;
公共班级登记册{
公共静态无效läggTillHund(Hund nyHund){
百分之一百注册。添加(nyHund);
系统输出打印LN(nyHund);
}
专用寄存器(){
ArrayList hundRegister=新的ArrayList();
}
}
我遇到的问题是“hundRegister.add(nyHund)”的问题

有什么想法吗?还是我出错的地方?(在Java非常新)

致意
Oskar

您创建的
ArrayList
是您的
寄存器的本地构造函数。在类内部声明它,但在构造函数外部声明它,作为实例变量,因此它在整个类的范围内

public class Register {
    private ArrayList<Hund> hundRegister;
    private Register(){
        hundRegister = new ArrayList<Hund>();
    }
}
公共类寄存器{
私人ArrayList hundRegister;
专用寄存器(){
hundRegister=new ArrayList();
}
}
此外,还不清楚为什么构造函数是私有的。其他任何东西都无法访问该构造函数。我会把它公开


另外,在
getSvanslängd
中,将
ras==“tax”
替换为
“tax”.equals(ras)
。请参阅。

您创建的
ArrayList
是您的
寄存器的本地构造函数。在类内部声明它,但在构造函数外部声明它,作为实例变量,因此它在整个类的范围内

public class Register {
    private ArrayList<Hund> hundRegister;
    private Register(){
        hundRegister = new ArrayList<Hund>();
    }
}
公共类寄存器{
私人ArrayList hundRegister;
专用寄存器(){
hundRegister=new ArrayList();
}
}
此外,还不清楚为什么构造函数是私有的。其他任何东西都无法访问该构造函数。我会把它公开


另外,在
getSvanslängd
中,将
ras==“tax”
替换为
“tax”.equals(ras)
。请参阅。

您创建的
ArrayList
是您的
寄存器的本地构造函数。在类内部声明它,但在构造函数外部声明它,作为实例变量,因此它在整个类的范围内

public class Register {
    private ArrayList<Hund> hundRegister;
    private Register(){
        hundRegister = new ArrayList<Hund>();
    }
}
公共类寄存器{
私人ArrayList hundRegister;
专用寄存器(){
hundRegister=new ArrayList();
}
}
此外,还不清楚为什么构造函数是私有的。其他任何东西都无法访问该构造函数。我会把它公开


另外,在
getSvanslängd
中,将
ras==“tax”
替换为
“tax”.equals(ras)
。请参阅。

您创建的
ArrayList
是您的
寄存器的本地构造函数。在类内部声明它,但在构造函数外部声明它,作为实例变量,因此它在整个类的范围内

public class Register {
    private ArrayList<Hund> hundRegister;
    private Register(){
        hundRegister = new ArrayList<Hund>();
    }
}
公共类寄存器{
私人ArrayList hundRegister;
专用寄存器(){
hundRegister=new ArrayList();
}
}
此外,还不清楚为什么构造函数是私有的。其他任何东西都无法访问该构造函数。我会把它公开


另外,在
getSvanslängd
中,将
ras==“tax”
替换为
“tax”.equals(ras)
。请参阅。

谢谢!那是我的耻辱;)当我看到答案时,这是显而易见的;)抛出一个NullpointerException,但现在没有编译错误。我猜我还有更多的故障排除要做,谢谢!那是我的耻辱;)当我看到答案时,这是显而易见的;)抛出一个NullpointerException,但现在没有编译错误。我猜我还有更多的故障排除要做,谢谢!那是我的耻辱;)当我看到答案时,这是显而易见的;)抛出一个NullpointerException,但现在没有编译错误。我猜我还有更多的故障排除要做,谢谢!那是我的耻辱;)当我看到答案时,这是显而易见的;)抛出一个NullpointerException,但现在没有编译错误。我猜我还有更多的故障排除要做xD