Latest web development tutorials

méthode Java

Dans les premiers chapitres, nous utilisons souvent System.out.println (), alors qu'est-ce?

println () est une méthode (méthode), et le système est la classe de système (classe), en est l'objet de sortie standard (Object). L'utilisation de cette déclaration est d'appeler la sortie standard du système de classe système objet à la méthode println ().

Alors, quelle est la façon de le faire?

méthode Java est un ensemble de déclarations, qui réalisent ensemble une fonction.

  • La méthode est une combinaison ordonnée pour résoudre une classe de problèmes étape
  • Méthodes inclus dans la classe ou de l'objet
  • La méthode a été créé dans le programme, référencé ailleurs

méthodes définies

D'une manière générale, la définition d'un procédé comprenant la syntaxe suivante:

修饰符 返回值类型 方法名 (参数类型 参数名){
    ...
    方法体
    ...
    return 返回值;
}

Le procédé comprend un en-tête de la méthode et un corps méthode. Voici tous partie d'un processus:

  • Modificateur: modificateur qui est facultatif, de dire au compilateur comment appeler la méthode. Il définit le type de méthode d'accès.
  • Valeur de retour Type: méthode peut renvoyer la valeur. returnValueType est une méthode retourne le type de la valeur de données. Certaines méthodes exécutent l'action souhaitée, mais pas de valeur de retour. Dans ce cas, returnValueType mot - clé vide.
  • Nom de la méthode: le nom réel de la méthode. Nom de la méthode et la liste des paramètres, ensemble, constituent la signature de méthode.
  • Type de paramètre: Paramètre comme un espace réservé. Lorsque la méthode est appelée, la valeur passée au paramètre. Cette valeur est appelée l'argument ou variable. Liste des paramètres est le nombre de type de la méthode, l'ordre et les paramètres paramètre. Paramètre est facultative, la méthode ne peut pas contenir tous les paramètres.
  • Méthode d' administration: Le procédé comprend une déclaration spécifique pour définir la fonction de la méthode.

Tels que:

public static int age(int birthday){...}

Vous pouvez avoir plus d'un paramètre:

static float interest(float principal, int year){...}

Remarque: Dans une autre méthode de langues se réfère au processus et les fonctions. Un type de retour non vide de la valeur de retour de la méthode dite de fonction; méthode retourne une valeur de retour de type void processus appelé.

Exemples

La méthode suivante contient deux paramètres num1 et num2, elle renvoie la valeur maximale de ces deux paramètres.

/** 返回两个整型变量数据的较大值 */
public static int max(int num1, int num2) {
   int result;
   if (num1 > num2)
      result = num1;
   else
      result = num2;

   return result; 
}

Method Invocation

Java prend en charge deux façons d'invoquer une méthode, selon que la valeur de retour de méthode pour sélectionner.

Lorsque le programme appelle une méthode, un programme pour contrôler la méthode est appelée. Lorsque la déclaration de retour de la méthode appelée est exécutée ou jusqu'à ce que le corps de la méthode, lorsque la fermeture de contrôle de retour de parenthèses au programme.

Lorsque la méthode retourne une valeur, l'invocation de méthode est généralement considérée comme une valeur. Par exemple:

int larger = max(30, 40);

Si la valeur de retour de méthode est vide, l'appel de méthode doit être une déclaration. Par exemple, la méthode println retourne void. L'appel suivant est une déclaration:

System.out.println("Welcome to Java!");

exemple

L'exemple suivant montre comment définir une méthode, et comment l'appeler:

public class TestMax {
   /** 主方法 */
   public static void main(String[] args) {
      int i = 5;
      int j = 2;
      int k = max(i, j);
      System.out.println("The maximum between " + i +
                    " and " + j + " is " + k);
   }

   /** 返回两个整数变量较大的值 */
   public static int max(int num1, int num2) {
      int result;
      if (num1 > num2)
         result = num1;
      else
         result = num2;

      return result; 
   }
}

Les exemples ci-dessus les résultats compilés sont les suivants:

The maximum between 5 and 2 is 5

Ce programme contient une méthode principale et la méthode de max. Méthode principale de machine virtuelle Java est appelée, en outre, principal et d'autres méthodes aucune différence.

Tête principale méthode est la même que l'exemple représenté, avec des modificateurs publics et statiques, la valeur de vide type de retour, le nom de la méthode est principale, en plus avec un String [] paramètres de type. String [] que l'argument est un tableau de chaînes.


vide les mots-clés

Cette section explique comment déclarer et appeler une méthode vide.

L'exemple suivant déclare une méthode nommée printGrade, et l'appeler pour imprimer un score donné.

exemple

public class TestVoidMethod {

   public static void main(String[] args) {
      printGrade(78.5);
   }

   public static void printGrade(double score) {
      if (score >= 90.0) {
         System.out.println('A');
      }
      else if (score >= 80.0) {
         System.out.println('B');
      }
      else if (score >= 70.0) {
         System.out.println('C');
      }
      else if (score >= 60.0) {
         System.out.println('D');
      }
      else {
         System.out.println('F');
      }
   }
}

Les exemples ci-dessus les résultats compilés sont les suivants:

C

Voici la méthode printGrade est une méthode de type void, il ne retourne pas de valeur.

Une méthode vide appel doit être une déclaration. Par conséquent, il est la principale méthode de la troisième ligne appelle sous la forme de la déclaration. Comme toute déclaration se termine par un point-virgule similaire.


Passage de paramètres par valeur

Appelez une méthode lorsque vous devez fournir les paramètres, vous devez fournir la liste des paramètres en fonction de l'ordre spécifié.

Par exemple, le procédé en continu n fois suivant imprime un message:

public static void nPrintln(String message, int n) {
  for (int i = 0; i < n; i++)
    System.out.println(message);
}

exemple

L'exemple suivant illustre l'effet passé par valeur.

Le programme crée une méthode qui est utilisée pour échanger deux variables.

public class TestPassByValue {

   public static void main(String[] args) {
      int num1 = 1;
      int num2 = 2;

      System.out.println("Before swap method, num1 is " +
                          num1 + " and num2 is " + num2);

      // 调用swap方法
      swap(num1, num2);
      System.out.println("After swap method, num1 is " +
                         num1 + " and num2 is " + num2);
   }
   /** 交换两个变量的方法 */
   public static void swap(int n1, int n2) {
      System.out.println("\tInside the swap method");
      System.out.println("\t\tBefore swapping n1 is " + n1
                           + " n2 is " + n2);
      // 交换 n1 与 n2的值
      int temp = n1;
      n1 = n2;
      n2 = temp;

      System.out.println("\t\tAfter swapping n1 is " + n1
                           + " n2 is " + n2);
   }
}

Les exemples ci-dessus les résultats compilés sont les suivants:

Before swap method, num1 is 1 and num2 is 2
        Inside the swap method
                Before swapping n1 is 1 n2 is 2
                After swapping n1 is 2 n2 is 1
After swap method, num1 is 1 and num2 is 2

Passer deux paramètres pour appeler la méthode d'échange. Fait intéressant, après la méthode est appelée, la valeur de l'argument n'a pas changé.


méthodes surchargées

méthode max utilise ci-dessus applique uniquement le type de données int. Mais si vous voulez obtenir la valeur maximale de deux données en virgule flottante taper?

La solution est de créer un autre paramètre du même nom, mais une autre méthode, comme indiqué dans le code suivant:

public static double max(double num1, double num2) {
  if (num1 > num2)
    return num1;
  else
    return num2;
}

Si vous appelez la méthode max est passé un paramètre int, méthode max de l'argument int est invoqué;

Si elle est adoptée à double paramètre de type, le type de double méthode expérience max est appelé, on appelle cela la surcharge de méthode;

Que deux méthodes d'une classe ont le même nom, mais avec la liste des paramètres différents.

compilateur Java en fonction de la signature de la méthode pour déterminer la méthode doit être appelée.

Méthode surcharge peut rendre le programme plus lisible. La méthode d'exécution est étroitement tâches connexes doivent utiliser le même nom.

méthodes surchargées doivent avoir la liste des paramètres différents. Vous ne pouvez pas simplement sur la base de différents types de modificateurs ou retourner aux méthodes surchargées.


Portée variable

variable Range fait partie du programme où la variable peut être référencée.

Les variables au sein de la définition de la méthode sont appelées variables locales.

Champ d'application d'une des déclarations de variables locales depuis le début jusqu'à la fin du bloc contenant.

Les variables locales doivent être déclarés avant qu'ils ne puissent être utilisés.

La méthode de couvrant l'ensemble de la méthode des paramètres. Paramètre est en fait une variable locale.

une partie d'initialisation variable de l'instruction for en boucle, la portée de son rôle dans le cycle.

Mais la variable déclaration de corps de la boucle est une déclaration de son champ d'application de celle-ci à la fin de la boucle. Il contient une variable déclarée comme suit:

Vous pouvez en quelque sorte, les différents blocs non imbriqués déclarer à plusieurs reprises une variable locale avec le même nom, mais vous ne pouvez pas être imbriqué dans le bloc deux fois pour déclarer des variables locales.

En utilisant les paramètres de ligne de commande

Parfois, vous voulez exécuter un programme quand il passe ensuite le message. Cela dépend de la transmission d'arguments de ligne de commande à la fonction main () à atteindre.

argument de ligne de commande est suivie par des informations sur le temps d'exécution après le nom du programme.

Exemples

Le programme suivant imprime tous les arguments de ligne de commande:

public class CommandLine {

   public static void main(String args[]){ 
      for(int i=0; i<args.length; i++){
         System.out.println("args[" + i + "]: " +
                                           args[i]);
      }
   }
}

Comme indiqué ci-dessous, exécutez le programme:

java CommandLine this is a command line 200 -100

Les résultats sont les suivants:

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100

constructeur

Lorsqu'un objet est créé lorsque le constructeur est utilisé pour initialiser l'objet. Et il est dans le constructeur de la classe du même nom, mais le constructeur n'a pas de valeur de retour.

Souvent utiliser le constructeur pour une instance de classe valeurs initiales variables, ou effectuer d'autres étapes nécessaires pour créer un objet complet.

Que ce soit ou non vous êtes un constructeur personnalisé, toutes les classes ont constructeur, car Java fournit automatiquement un constructeur par défaut, dont tous les membres sont initialisés à zéro.

Une fois que vous avez défini votre propre constructeur, le constructeur par défaut échouera.

Exemples

Voici un exemple d'utilisation du constructeur:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass() {
      x = 10;
   }
}

Vous pouvez appeler comme ce constructeur pour initialiser un objet:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.x + " " + t2.x);
   }
}

La plupart du temps ont besoin d'un paramètre du constructeur.

Exemples

Voici un exemple d'utilisation du constructeur:

// 一个简单的构造函数
class MyClass {
   int x;
   
   // 以下是构造函数
   MyClass(int i ) {
      x = i;
   }
}

Vous pouvez appeler comme ce constructeur pour initialiser un objet:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

Les résultats sont les suivants:

10 20

paramètre variable

Au JDK 1.5, le support de Java en passant le même type de paramètres variables à une méthode.

Déclarer les paramètres variables du procédé sont les suivantes:

typeName... parameterName

Dans la déclaration de méthode, le spécifié type de paramètre après avoir ajouté une suspension (...).

Une méthode peut spécifier qu'un seul paramètre variable, il doit être la dernière méthode de paramètre. Les paramètres communs doivent être déclarés avant lui.

Exemples

public class VarargsDemo {

   public static void main(String args[]) {
      // 调用可变参数的方法
	  printMax(34, 3, 3, 2, 56.5);
      printMax(new double[]{1, 2, 3});
   }

   public static void printMax( double... numbers) {
   if (numbers.length == 0) {
      System.out.println("No argument passed");
      return;
   }

   double result = numbers[0];

   for (int i = 1; i <  numbers.length; i++)
      if (numbers[i] >  result)
      result = numbers[i];
      System.out.println("The max value is " + result);
   }
}

Les exemples ci-dessus les résultats compilés sont les suivants:

The max value is 56.5
The max value is 3.0

méthode finalize ()

Java vous permet de définir une méthode dans laquelle un objet est appelé avant le destructeur garbage collector (recyclage), cette méthode est appelée finalize (), qui est utilisé pour effacer les objets récupérés.

Par exemple, vous pouvez utiliser la finalisation () pour veiller à ce qu'un fichier ouvert d'objet est fermé.

Dans la méthode finalize (), vous devez spécifier l'opération à effectuer lorsque l'objet est détruit.

finaliser () est le format général:

protected void finalize()
{
   // 在这里终结代码
}

Mot-clé protégée est un qualificatif, il assure que la méthode finalize () ne soit jamais appelé le code en dehors de la classe.

Bien sûr, la collecte des ordures de Java peut être effectué automatiquement par la JVM. Si vous utilisez le manuel, vous pouvez utiliser la méthode ci-dessus.

Exemples

public class FinalizationDemo {  
    public static void main(String[] args) {  
        Cake c1 = new Cake(1);  
        Cake c2 = new Cake(2);  
        Cake c3 = new Cake(3);  
          
        c2 = c3 = null;  
        System.gc(); //调用Java垃圾收集器
    }  
}  
  
class Cake extends Object {  
    private int id;  
    public Cake(int id) {  
        this.id = id;  
        System.out.println("Cake Object " + id + "is created");  
    }  
      
    protected void finalize() throws java.lang.Throwable {  
        super.finalize();  
        System.out.println("Cake Object " + id + "is disposed");  
    }  
}  

Exécuter le code ci-dessus, les résultats de sortie sont les suivantes:

C:\1>java FinalizationDemo  
Cake Object 1is created  
Cake Object 2is created  
Cake Object 3is created  
Cake Object 3is disposed  
Cake Object 2is disposed