Set méthode de la baie sur l'île de java
J'ai une classe arrayFun
avec la variable
int[] _array;
J'ai une méthode setArray:
public void setArray(int [] array)
{
_array = array;
}
- Est mon définissez la méthode de la mise en œuvre correcte ?
2).Comment puis-je utiliser cette méthode dans d'autres classe principale ?
J'ai essayé un peu ridicule d'options comme:
arrayFun A = new arrayFun(some_constructor_values);
A.setArray(1,2,3,4,5);
Que l'option de cours ne fonctionne pas...
- Si vous êtes encore à apprendre peut-être qu'il serait bon de suivre code officiel des conventions
- ` A. setArray(new int[] {1,2,3,4,5});`
- C'est une bonne idée de l'apprentissage ou non. 😉
Vous devez vous connecter pour publier un commentaire.
Essayer
Une autre façon de résoudre ce déclarer l'argument comme un "varargs" argument comme suit:
et puis cela va fonctionner:
Vous pouvez faire de même avec un argument du constructeur.
Alors que j'ai votre attention, il est important que vous en apprendre les conventions de nommage Java, et apprendre à les suivre strictement.
static final
constante.Pour plus d'informations, lire le Java Lignes Directrices De Style.
Donc votre exemple de classe devrait ressembler à ceci:
et devraient être utilisées comme ceci:
Vous pouvez utiliser ce lieu
Sauf si vous prenez une copie du tableau, vous permettra d'utiliser le même tableau en l'appelant et l'appelé.
Ce que vous demandez de faire n'a pas vraiment de sens. Aussi, pourquoi utiliser une fonction à "la matrice", pourquoi ne pas simplement définir le tableau directement:
_array = newArray
Vous pouvez également définir un tableau de valeurs comme ceci:
int[] array = {1,2,3,4,5};
Votre signature de la méthode est :
De sorte qu'il accepte un seul argument de type tableau d'entiers.
Mais dans votre appel de la méthode, vous êtes en l'appelant comme:
Dans ce que vous êtes de passage à 5 arguments à la méthode. Donc, il ne correspond à aucune méthode avec 5 arguments. C'est pourquoi elle ne fonctionne pas.
Vous devriez passer un tableau d'entiers.
Vous pouvez le faire de différentes façons :
ou
Réglage de la matrice de la manière que vous avez fait est très bien. Mais ce que vous définissez à partir de A. setArray(1,2,3,4,5); vous gratifiera d'erreur disant "Méthode setArray(int,int,int,int,int) n'est pas trouvé".
Vous pouvez faire quelque chose comme
int[] ar = { 1, 2 };
a.setArray(ar);