Comment appeler un constructeur de la classe, dans la méthode main
Je sais que c'est probablement une super question simple mais je n'arrive pas à comprendre pour la vie de moi.
Comme le titre je veux juste appeler le constructeur de la Méthode main.
class Example{
public static void main (String[] args)
{
//I want to call the constructor in the mpgCalculator class....
}
public class mpgCalculator {
public double compute(double mpg, double sizeOfTank)
{
double mpL = mpg * 4;
double tankSizeL = sizeOfTank * 4;
double kmpL = mpL * 1.6;
double result = kmpL /tankSizeL;
return result;
}
}
}
- En Java, les noms de classe doivent commencer par une lettre majuscule (
MpgCalculator
). Ce n'est pas une exigence de la langue, mais c'est une convention universelle, et cela rend la lecture de votre code beaucoup plus facile.
Vous devez vous connecter pour publier un commentaire.
La classe
mpgCalculator
seulement le constructeur par défaut, puisque vous n'avez pas à en définir un. Vous n'appelez pas le constructeur manuellement; au lieu de cela, vous créez un nouvel objet, et il est appelé automatiquement. Vous voulez probablement à ceci:Dans ce cas particulier, le
compute
fonction n'est pas réellement se rapportent à n'importe quelle copie dempgCalculator
, et de sorte que vous pouvez le fairestatic
si vous le souhaitez (public static double compute
). Puis dans une autre méthode, vous pouvez dire:À ajouter de plus à ce problème; vous semblez être l'aide d'un intérieur de classe. Vous ne peut pas instancier la classe de la façon dont vous avez construit sans avoir un objet de l'Exemple de la première.
EDIT: deux exemples de solutions possibles à votre problème:
D'abord, statique à l'intérieur de la classe; l'essentiel, comme une classe imbriquée de C++. L'intérieur de la classe n'a pas besoin d'être associé à une autre instance.
Deuxième, le complexe intérieur de la classe instanciée à partir de l'extérieur de la classe.
Si vous avez juste besoin d'une fonction d'utilité, puis suivez chrylis de réponse.
class Example{ public static void main (String[] args) { } public class mpgCalculator { mpgCalculator calc = new mpgCalculator(); public double result = calc.compute(1.0,2.0); public double compute(double mpg, double sizeOfTank) { double mpL = mpg * 4; double tankSizeL = sizeOfTank * 4; double kmpL = mpL * 1.6; double result = kmpL / tankSizeL; return result; } } }
Dieu je suis nul dans ce.Depuis,
mpgCalculator
(qui devrait être renomméMpgCalculator
ouMPGCalculator
, afin de les différencier des noms de variables) est un intérieur de classe deExample
vous avez besoin d'un extérieur instance de la classe à instancier.Mais, cela semble être une classe utilitaire dans ce cas, vous pouvez avoir imbriqué en rendant
static
.Vous pouvez ensuite créer une instance sans avoir besoin de créer un extérieur instance de la classe aussi.