호는이 코드이 코드가 있다고 가정 :
public class NameOfProgram
{
public static void main(String[] args)
{
A aa = new A();
aa.fly();
}
}
그런 AA가 문 new A()
생성됩니다 내부 BB 변수. 따라서 이미 존재하는 B 객체를 생성하여 bb로 설정할 필요가 없습니다.
또한 변수를 생성자 외부에서 선언해야합니다. 그렇지 않으면 파리와 같은 다른 메소드에서 변수를 사용할 수 없습니다. 이 문제를 해결하려면 당신이 할 수 있습니다 :
public class A
{
B bb; <-----------------
public A()
{
bb = new B(NameOfVariableIForgotAbout);
}
public void fly()
{
bb.doFly() //Now this should work
}
}
당신은 또한 수 있지만 방법 후 B bb;
, 나는 그냥 이런 식으로 선호합니다.
또한 클래스 A에는 몇 가지 오류가 있습니다 (나중에 참조 할 수 있도록 참고하시기 바랍니다). 당신이 클래스 (A aa = new A(); aa.fly()
)의 인스턴스에서 메서드를 호출 할 수 있도록하려면 첫째, 당신은 공공과 같이 방법을 확인해야합니다 :
public void fly()
{
//Insert code here
}
는 또한, 당신이 잘못 생성자를 선언했다.
public A
{
//Insert code here
}
과는 다음과 같이 이루어집니다 : 여기 당신이 그것을 어떻게했는지 당신이 전화 aa.fly()
을 할 경우가 있기 때문에 첫 번째 오류는 컴파일시 오류가 발생합니다
public A()
{
//Insert code here
}
을 어느 개인이나 공공의.
두 번째 메서드를 호출하지 않아도 컴파일 타임 오류가 발생합니다.
B에 대한 코드를 표시해야합니다. doFly() 메소드가 있습니까? 아니면 A에서 상속합니까? –