n ° Supposons que vous ayez ce code ce code:
public class NameOfProgram
{
public static void main(String[] args)
{
A aa = new A();
aa.fly();
}
}
la variable bb aa l'intérieur est créé avec l'new A()
. Ainsi, vous n'avez pas besoin de créer un objet B et de le définir sur bb tel qu'il existe déjà.
De même, vous devez déclarer la variable en dehors du constructeur ou vous ne pourrez pas l'utiliser dans d'autres méthodes, telles que fly. Pour le corriger, vous pouvez le faire:
public class A
{
B bb; <-----------------
public A()
{
bb = new B(NameOfVariableIForgotAbout);
}
public void fly()
{
bb.doFly() //Now this should work
}
}
vous pouvez aussi mais le B bb;
après la méthode, je préfère cette façon.
En outre, votre classe A a quelques erreurs (donc vous notez pour référence future). Tout d'abord, si vous voulez être en mesure d'appeler une méthode à partir d'une instance de la classe (A aa = new A(); aa.fly()
) alors vous devez rendre les méthodes publiques comme ceci:
public void fly()
{
//Insert code here
}
En outre, vous avez déclaré le constructeur à tort. Voici comment vous l'avez fait:
public A
{
//Insert code here
}
et il se fait comme suit:
public A()
{
//Insert code here
}
La première erreur provoquera une erreur de compilation si vous faites l'appel aa.fly()
car il est ni privé, ni Publique. La deuxième provoquera une erreur de compilation même si vous n'appelez pas la méthode.
Vous aurez besoin d'afficher le code pour B - at-il une méthode doFly() ou hérite-t-il de A? –