a1
スコープはメインの内側にのみあります。a1
これは、mainメソッドでのみ使用できることを意味します。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);
}
Albumオブジェクトでrunner1を呼び出すとa1
、内部runner1
でそのオブジェクトをキーワードで参照できます。this
編集:考え方はここでも同じです。mainメソッドでAlbumオブジェクトを作成し、呼び出しの下部が存在するメソッドを呼び出します。このメソッド内で、によって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
}
したがって、メインメソッドから、Albumオブジェクトでメソッドを呼び出すたびにrunner1
、このオブジェクトはとして参照さthis
れ、メソッドでキーワードを使用できますremoveAlbum
。
したがって、メインに、という3つのAlbumオブジェクトがあり、この順序a1, a2, a3
でメソッドを呼び出す場合は、次のようになります。runner1
a1.runner1();
a2.runner1();
a3.runner1();
次に、そのメソッドで参照しているため、呼び出しごとにメソッドを呼び出すオブジェクトが削除されますthis
。
これで問題が解決することを願っています