[Java] Obtenir plusieurs valeurs à partir d'une valeur de retour

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 ...)

En conclusion,

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.

1. Lorsque plusieurs valeurs de retour sont du même type

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.

1-1. Retour en tant que tableau de type de données de base

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

2. Lorsque plusieurs valeurs de retour sont atypiques

--Comment retourner en tant que type d'objet avec la même idée que ci-dessus

2-1. Retour en tant que tableau de type objet

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?

2-2. Renvoyer comme type de classe

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.

Livre de référence

[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

[Java] Obtenir plusieurs valeurs à partir d'une valeur de retour
[Java] Récupère des valeurs de manière aléatoire dans un tableau
Essayez la valeur de retour Java
Lors de l'insertion de Java vers MySQL, obtenez Auto_Increment_ID (valeur de numérotation automatique) comme valeur de retour
Note n ° 5 "Les valeurs HashMap ont plusieurs valeurs utilisant des classes" [Java]
Obtenir des attributs et des valeurs à partir d'un fichier XML en Java
Obtenir le pays à partir de l'adresse IP (Java)
Arguments Java, valeurs de retour et surcharges
Obtenir des valeurs de carte nulles en Java
Obtenir des informations sur l'appelant à partir de la trace de la pile (Java)
Inverser la clé de la valeur dans la carte Java
[Java] Obtenir des informations sur les balises à partir de fichiers musicaux
Java: Comment envoyer des valeurs du servlet au servlet
Obtenir l'historique du serveur Zabbix en Java
Obtenez "2-4, 7, 9" de [4, 7, 9, 2, 3]
[Java] Exemple de programme qui acquiert les valeurs maximum et minimum d'un tableau
[Java] De deux listes à une liste de tableaux
Obtenir la valeur des paramètres d'URL avec Get Mapping-LocalDate-
Comment obtenir une classe depuis Element en Java
Obtenez unixtime (secondes) de ZonedDateTime dans Scala / Java
[Android] Obtenez des clés et des valeurs aléatoires à partir de HashMap
[LeJOS] Obtenez la valeur du capteur EV3 à distance avec Java
[Java] Obtenir KFunction à partir de la méthode / du constructeur en Java [Kotlin]
Essayez d'appeler des méthodes synchronisées à partir de plusieurs threads en Java
Sortie de la valeur maximale d'un tableau à l'aide de la sortie standard Java
[Java] Comment obtenir la valeur maximale de HashMap
Soustraire les constantes Enum des chaînes et des valeurs en Java
Deep Learning Java from scratch 6.2 Valeur initiale du poids