a1
범위는 내부에 코드 데모입니다 본관. 즉, 기본 방법 인 경우에만 a1
을 사용할 수 있습니다. 주요 외부에서 사용할 수 있으려면, 당신은 당신이 그것을 사용하려고하고있는 메서드에 매개 변수로 전달해야합니다. 당신이 당신의 runner1
방법에 a1
을 사용하려는 경우 (가정 runner1이 Album
하는 방법입니다 그래서 당신이 runner1
내부 앨범 객체 a1
에 runner1 전화 후 this
EDIT 당신이 키워드로 해당 개체를 참조 할 수 있습니다
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);
}
: 아이디어는 동일 클래스, 당신은 같은 것을 할 필요가 여기, 당신은 당신의 메인 메소드에서 당신의 앨범 객체를 만들고, 메소드를 호출합니다. 당신의 전화가 있습니다. 이 메서드 내에서 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
}
, 때마다 당신이 앨범 개체의 runner1
메소드를 호출,이 객체는 this
으로 대해 참조되며 사용자는 키워드를 사용할 수 있습니다 방법은 removeAlbum
입니다.
그래서에서 주 당신은 a1, a2, a3
라는 세 개의 앨범 객체를 가지고 있고,이 순서로 runner1
메서드를 호출하는 경우 : 당신이 그것을 참조하기 때문에
a1.runner1();
a2.runner1();
a3.runner1();
그런 다음 각각의 호출 메서드를 호출하는 개체를 제거됩니다 그 방법에서 this
.
희망이
범위와 가시성에 대해 읽어보십시오. – Polygnome
'a1'이라는 이름의 'Album'에 정적 속성을 호출하고 있습니다. 'Album'에'a1'이라는 정적 속성이 있습니까?'main() '에'a1'라고 불리는'Album' 타입의 변수가 있습니다. 그러나 그것은 같은 것이 아니에요. 그리고 main()은 runner1()을 호출하지 않으므로, 여기서 어떤 일이 일어나고 있는지 잘 모르겠습니다. – David
그럼 설명해 보도록하겠습니다. "public void runner1()을 삭제하면 아래의 메소드가 주에서 실행되므로 실수가 없습니다. 문제는 2 개의 다른 메소드 - 계열이 실행되기를 원하기 때문에 내 메인에서 호출해야합니다. – user2151525