如何在另一个方法中调用实例(主要)

时间:2013-03-09 13:10:10

标签: java

新程序员:

我需要帮助才能从上面的方法调用类Album的实例。

public static void main(String[] args) {
        Album a1 = new Album("Fede Finn og Funnyboys", "Glade Aber");

        Ar1.addAlbum(a1);

    }

    public void runner1() {
        Ar1.sortList();
        System.out.println("");
        toTxt(1);
        Ar1.removeAlbum(Album.**a1**);

我犯了这个错误:a1无法解析或不是字段。

容易出问题 - 我知道,抱歉:)

THX

4 个答案:

答案 0 :(得分:0)

a1的范围在main之内,所以如果你试图在main之外使用它,你会得到上面提到的错误。

Album a1 = new Album("Fede Finn og Funnyboys", "Glade Aber");
public static void main(String[] args) {
     Ar1.addAlbum(a1);

}

答案 1 :(得分:0)

main方法是一种不同的方法,你不能在这个方法中调用类文件

如果你想这样做,这里是代码演示

class Albumdemo{
public static void main(String[] args) {
    Album a1 = new Album("Fede Finn og Funnyboys", "Glade Aber");
    Albumdemo Ar1 = new  Albumdemo();
    Ar1.addAlbum(a1);

}

public void runner1(Album a1) {
    Ar1.sortList();
    System.out.println("");
    toTxt(1);
    Ar1.removeAlbum(Album.**a1**);
}

}

答案 2 :(得分:0)

a1范围仅在主要内部。这意味着您只能在main方法中使用a1。为了能够在main之外使用它,您需要将其作为参数传递给您将要使用它的方法。因此,如果您想在a1方法中使用runner1(假设runner1是Album类的方法,则需要执行以下操作:

public static void main(String[] args) {
        Album a1 = new Album("Fede Finn og Funnyboys", "Glade Aber");
        a1.runner1();//you need to call runner1 on the Album object

        Ar1.addAlbum(a1);

    }

在相册对象a1上调用runner1后,在runner1内,您可以通过关键字this

引用该对象

编辑: 这个想法在这里是一样的。您可以在main方法中创建Album对象,并调用存在调用底部的方法。在此方法内部,请this引用相册对象。例如,如果方法被称为runner1,那么:

public void runner1() {
        Ar1.sortList();
        System.out.println("");
        toTxt(1);
        Ar1.removeAlbum(this);//refer to the Album object you want to remove by this
}

因此,从您的main方法开始,每次在Album对象上调用runner1方法时,此对象都将被称为this,您可以使用removeAlbum中的关键字方法

因此,如果您有三个名为a1, a2, a3的相册对象,并且按此顺序调用runner1方法,那么在您的主文件中:

a1.runner1();
a2.runner1();
a3.runner1();

然后每个调用都将删除调用该方法的对象,因为在该方法中this引用它。

希望这能解决您的问题

答案 3 :(得分:0)

a1在main方法中是局部作用域。如果您将变量指定为成员,则可以引用它:

public class Album {
    private static ArrayList<Album> Ar1 = new ArrayList<Album>(); // I assume you have one of these here?
    private static Album a1 = new Album("Fede Finn og Funnyboys", "Glade Aber");

    public static void main(String[] args) {
        Ar1.addAlbum(a1);
        new Album().runner1();
    }

    public void runner1() {
        Ar1.sortList();
        System.out.println("");
        toTxt(1);
        Ar1.removeAlbum(a1);
    }
}