Bonjour je suis un débutant en Java et voici ma question: j'ai cette première classe avec les variables suivantes:
import Java.util.ArrayList;
public class numbers {
private int number1 = 50;
private int number2 = 100;
}
Et j'ai aussi ce cours:
import Java.util.ArrayList;
public class test {
private numbers number;
}
Ma question est la suivante: je veux stocker les variables number1 et number2 dans une ArrayList, puis accéder à cette ArrayList à partir du test de classe. Comment puis je faire ça?
import Java.util.ArrayList;
public class numbers {
private int number1 = 50;
private int number2 = 100;
private List<Integer> list;
public numbers() {
list = new ArrayList<Integer>();
list.add(number1);
list.add(number2);
}
public List<Integer> getList() {
return list;
}
}
Et la classe de test:
import Java.util.ArrayList;
public class test {
private numbers number;
//example
public test() {
number = new numbers();
List<Integer> list = number.getList();
//hurray !
}
}
Vous pouvez le faire en fournissant dans la classe numbers
:
Soit dit en passant, il existe une convention forte selon laquelle Java sont en majuscules.
Cas 1 (getter simple):
public class Numbers {
private List<Integer> list;
public List<Integer> getList() { return list; }
...
}
Cas 2 (wrapper non modifiable):
public class Numbers {
private List<Integer> list;
public List<Integer> getList() { return Collections.unmodifiableList( list ); }
...
}
Cas 3 (méthodes spécifiques):
public class Numbers {
private List<Integer> list;
public void addToList( int i ) { list.add(i); }
public int getValueAtIndex( int index ) { return list.get( index ); }
...
}
Vous pouvez effectuer les opérations suivantes:
public class Numbers {
private int number1 = 50;
private int number2 = 100;
private List<Integer> list;
public Numbers() {
list = new ArrayList<Integer>();
list.add(number1);
list.add(number2);
}
int getNumber(int pos)
{
return list.get(pos);
}
}
public class Test {
private Numbers numbers;
public Test(){
numbers = new Numbers();
int number1 = numbers.getNumber(0);
int number2 = numbers.getNumber(1);
}
}
Deux voies
1) instancier le first class
et getter pour arrayList
ou
2) Faire une liste d'arrayl comme static
Et enfin
Mettez-les dans une arrayList dans votre première classe comme:
import Java.util.ArrayList;
public class numbers {
private int number1 = 50;
private int number2 = 100;
public ArrayList<int> getNumberList() {
ArrayList<int> numbersList= new ArrayList<int>();
numbersList.add(number1);
numberList.add(number2);
....
return numberList;
}
}
Ensuite, dans votre classe de test, vous pouvez appeler number.getNumberList () pour obtenir votre arrayList. En outre, vous souhaiterez peut-être créer des méthodes telles que addToList/removeFromList dans votre classe de nombres afin de pouvoir le gérer comme vous en avez besoin.
Vous pouvez également accéder à une variable déclarée dans une classe à partir d'une autre simplement comme
numbers.numberList;
si vous l'avez déclaré public.
Mais ce n'est pas une bonne pratique à mon avis, car vous devrez probablement modifier cette liste dans votre code plus tard. Notez que vous devez ajouter votre classe à la liste d'importation.
Si vous pouvez me dire quelles sont les exigences de votre application, je serai en mesure de vous dire plus précisément ce que je pense qu'il est préférable de faire.