En lisant le texte d'introduction, je me suis dit: "N'est-ce pas pratique si je peux renvoyer deux valeurs de retour ou plus?", J'ai donc essayé d'écrire en vérifiant. Une note pour ne pas l'oublier. (Il semble y avoir une méthode appelée Beans and List, mais je vais étudier ...)
J'ai pris la méthode de retour des valeurs ensemble dans une variable de tableau ou une variable de type de classe. En fin de compte, je me suis dit: "N'est-il pas préférable d'augmenter le nombre de méthodes et de les renvoyer une par une?"
--Lorsque plusieurs valeurs de retour sont du même type
Compte tenu des restrictions d'accès, je pense que les méthodes sont en fait plus limitées.
L'idée est que s'il existe plusieurs valeurs de retour que vous souhaitez renvoyer et qu'elles sont toutes du même type, vous pouvez les placer dans le type de données de base. Vous pouvez forcer le type int dans le type double, mais vous ne voulez pas le faire, non? J'ai pensé, donc je n'y pense pas dans ce cas.
Sub.java
public class Sub {
private int A = 100;
private int B = 200;
public int[] getAB(){
int[] array = new int[2];
array[0] = A;
array[1] = B;
return array;
}
}
Main.java
public class Main {
public static void main(String[] args){
Sub sub = new Sub();
int[] array = sub.getAB(); //Ici, le tableau int est renvoyé par la classe Sub.
System.out.println(array[0]); //production
System.out.println(array[1]);
}
}
Résultat d'exécution.
100
200
--Comment retourner en tant que type d'objet avec la même idée que ci-dessus
La partie écrite ci-dessus comme ʻint [] est devenue ʻObject []
. L'idée est que même les valeurs atypiques peuvent être stockées ensemble s'il s'agit d'un tableau de type Object.
Sub.java
public class Sub {
private int A = 100;
private double B = 200.0;
public Object[] getAB() {
Object[] array = new Object[2];
array[0] = A;
array[1] = B;
return array;
}
}
Main.java
public class Main {
public static void main(String[] args) {
Sub sub = new Sub();
Object[] array = sub.getAB();
System.out.println(array[0]);
System.out.println(array[1]);
}
}
Résultat d'exécution.
100
200.0
Est-ce la meilleure méthode que j'ai écrite dans cet article?
L'idée est qu'après avoir renvoyé un objet, vous pouvez appeler le champ de cet objet avec la méthode main. Bien que cela puisse être fait, l'inconvénient est que l'accès ne peut pas être restreint à l'aide de modificateurs d'accès.
Sub.java
public class Sub {
int circleAreaInt;
double circleAreaDouble;
public Sub calcCircleArea(int r) {
Sub sub = new Sub();
sub.circleAreaInt = 3 * r * r ;
sub.circleAreaDouble = 3.14 * r * r;
return sub;
}
}
Main.java
public class Main {
public static void main(String[] args) {
Sub sub = new Sub();
sub = sub.calcCircleArea(2);
System.out.println(sub.circleAreaInt);
System.out.println(sub.circleAreaDouble);
}
}
Résultat d'exécution.
12
12.56
Si vous passez le rayon r
du cercle comme argument (int), la méthode qui calcule et renvoie l'aire du cercle avec à la fois le rapport de circonférence (3) de la génération généreuse et le rapport de circonférence (3,14) de la génération non claire. ..... Mais je ne pouvais pas penser à un bon exemple. Vous n'êtes pas obligé de l'écrire de cette façon.
[Easy Java 7e édition] (https://www.amazon.co.jp/%E3%82%84%E3%81%95%E3%81%97%E3%81%84Java-%E7%AC%AC7%E7%89%88-%E3%80%8C%E3%82%84%E3%81%95%E3%81%97%E3%81%84%E3%80%8D%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E9%AB%98%E6%A9%8B-%E9%BA%BB%E5%A5%88/dp/4815600848) Pp.251
Recommended Posts