Latest web development tutorials

metodo Java

Nei primi capitoli, che spesso usiamo per System.out.println (), allora che cosa è?

println () è un metodo (metodo), e il sistema è la classe di sistema (Class), fuori è l'oggetto di output standard (Object). L'utilizzo di questa affermazione è di chiamare lo standard di uscita del sistema di classe del sistema oggetto out metodo println ().

Allora, qual è il modo per farlo?

metodo Java è insieme di istruzioni che svolgono insieme una funzione.

  • Il metodo è una combinazione ordinata di risolvere una classe di problemi step
  • I metodi inclusi nella classe o di un oggetto
  • Il metodo è stato creato nel programma, si fa riferimento

metodi definiti

In generale, la definizione di un metodo comprendente la seguente sintassi:

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

Il metodo comprende un'intestazione metodo ed un corpo del metodo. Qui sono tutti parte di un processo:

  • Modifier: modificatore, che è opzionale, a dire il compilatore come chiamare il metodo. Definisce il tipo di accesso del metodo.
  • Valore restituito Tipo: metodo potrebbe valore di ritorno. returnValueType è un metodo restituisce il tipo di dati del valore. Alcuni metodi eseguire l'azione desiderata, ma nessun valore di ritorno. In questo caso, returnValueType parola chiave void.
  • Nome metodo: il nome effettivo del metodo. Nome del metodo e lista di parametri costituiscono insieme la firma del metodo.
  • Tipo parametro: il parametro come un segnaposto. Quando il metodo viene chiamato, il valore passato al parametro. Questo valore viene chiamato l'argomento o variabile. Lista dei parametri è il numero di tipo di parametro del metodo, l'ordine e parametri. Il parametro è facoltativo, il metodo non può contenere alcun parametro.
  • Metodo Corpo: Il metodo comprende una dichiarazione specifica per definire la funzione del metodo.

Come ad esempio:

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

È possibile avere più di un parametro:

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

Nota: In un altro metodo lingue si riferisce al processo e funzioni. Un tipo di ritorno non vuoto del valore di ritorno del metodo richiamato la funzione, metodo restituisce un valore di ritorno di tipo void chiamato processo.

Esempi

Il seguente metodo contiene due parametri num1 e num2, restituisce il valore massimo di questi due parametri.

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

   return result; 
}

Method Invocation

Java supporta due modi di invocare un metodo, a seconda che il valore di ritorno del metodo per selezionare.

Quando il programma chiama un metodo, un programma per controllare il metodo viene chiamato. Quando istruzione return dell'utente chiamato metodo viene eseguito o finché il corpo del metodo quando la chiusura di controllo ritorno parentesi programma.

Quando il metodo restituisce un valore, l'invocazione del metodo è generalmente considerata come valore. Ad esempio:

int larger = max(30, 40);

Se il valore di ritorno del metodo è vuoto, la chiamata al metodo deve essere una dichiarazione. Ad esempio, il metodo println restituisce void. La seguente chiamata è una dichiarazione:

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

esempio

L'esempio seguente mostra come definire un metodo, e come chiamarlo:

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; 
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

The maximum between 5 and 2 is 5

Questo programma contiene un metodo principale e il metodo di max. metodo JVM principale viene richiamato, in aggiunta, principale e altri metodi alcuna differenza.

Testa metodo principale è lo stesso come nell'esempio illustrato, con modificatori pubblici e statiche, il valore del tipo di ritorno void, nome del metodo è principale, inoltre con una stringa [] parametri di tipo. String [] che l'argomento è un array di stringhe.


nulla parola chiave

Questa sezione spiega come dichiarare e chiamare un metodo vuoto.

L'esempio seguente dichiara un metodo denominato printGrade, e lo chiamano per stampare un determinato punteggio.

esempio

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');
      }
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

C

Ecco il metodo printGrade è un metodo di tipo void, non restituisce un valore.

Una chiamata al metodo vuoto deve essere una dichiarazione. Pertanto, è il metodo principale della terza riga chiama in forma di comunicazione. Come ogni dichiarazione termina con un punto e virgola simile.


Passaggio di parametri per valore

Chiamare un metodo quando è necessario fornire i parametri, è necessario fornire l'elenco dei parametri secondo l'ordine specificato.

Ad esempio, il seguente metodo di continuo n volte stampa un messaggio:

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

esempio

L'esempio che segue illustra l'effetto passato per valore.

Il programma crea un metodo che viene usato per scambiare due variabili.

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);
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

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

Passare due parametri di chiamare il metodo di swap. È interessante notare, dopo il metodo viene chiamato, il valore dell'argomento non è cambiata.


metodi di overload

Metodo max utilizza quanto sopra vale solo per il tipo di dati int. Ma se si vuole ottenere il valore massimo di due dati in virgola mobile tipo è?

La soluzione è quella di creare un altro parametro con lo stesso nome ma un metodo diverso, come mostrato nel codice seguente:

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

Se si chiama il metodo max viene passato un parametro int, il metodo max dell'argomento int viene richiamato;

Se approvata parametro doppio tipo, il tipo di metodo della doppia esperienza max viene chiamato, questo si chiama overloading dei metodi;

Che due metodi di una classe hanno lo stesso nome, ma con diversa lista dei parametri.

compilatore Java secondo la firma del metodo per determinare quale metodo deve essere chiamato.

Metodo sovraccarico può rendere il programma più leggibile. Il metodo di esecuzione è strettamente attività correlate devono utilizzare lo stesso nome.

metodi di overload devono avere diversa lista dei parametri. Non si può semplicemente sulla base di diversi tipi di modificatori o di tornare a metodi di overload.


Mirino variabile

variabile Range è parte del programma in cui la variabile può fare riferimento.

Le variabili all'interno di definizione del metodo sono chiamate variabili locali.

Portata di una dichiarazione delle variabili locali dall'inizio fino alla fine del blocco che lo contiene.

Le variabili locali devono essere dichiarate prima di poter essere utilizzati.

Il metodo di coprire l'intera gamma di parametri metodo. Il parametro è in realtà una variabile locale.

parte di inizializzazione variabile dell'istruzione for loop, la portata del suo ruolo nel ciclo.

Ma dichiarazione corpo del ciclo variabile è una dichiarazione della sua portata da esso alla fine del ciclo. Esso contiene una variabile dichiarata come segue:

Si può in un certo senso, i diversi blocchi non nidificati ripetutamente dichiarare una variabile locale con lo stesso nome, ma non si può essere nidificato all'interno del blocco due volte per dichiarare le variabili locali.

Utilizzando i parametri della riga di comando

A volte si desidera eseguire un programma quando poi passò il messaggio. Questo dipende dal passaggio di argomenti della riga di comando per la funzione main () per ottenere.

argomento della riga di comando è seguito da informazioni sui tempi di esecuzione dopo il nome del programma.

Esempi

Il seguente programma stampa tutti gli argomenti della riga di comando:

public class CommandLine {

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

Come mostrato di seguito, eseguire il programma:

java CommandLine this is a command line 200 -100

I risultati sono i seguenti:

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

costruttore

Quando un oggetto viene creato quando il costruttore viene utilizzato per inizializzare l'oggetto. Ed è nel costruttore della classe con lo stesso nome, ma il costruttore non ha alcun valore di ritorno.

Spesso utilizzare il costruttore a un'istanza della classe valori iniziali delle variabili, o eseguire altre misure necessarie per creare un oggetto completo.

O se non sei un costruttore personalizzato, tutte le classi hanno costruttore perché Java fornisce automaticamente un costruttore di default, che tutti i membri sono inizializzati a zero.

Dopo aver definito il proprio costruttore, il costruttore di default fallirà.

Esempi

Ecco un esempio di utilizzo del costruttore:

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

È possibile chiamare in questo modo il costruttore per inizializzare un oggetto:

public class ConsDemo {

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

Il più delle volte hanno bisogno di un parametro del costruttore.

Esempi

Ecco un esempio di utilizzo del costruttore:

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

È possibile chiamare in questo modo il costruttore per inizializzare un oggetto:

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);
   }
}

I risultati sono i seguenti:

10 20

parametro variabile

A partire da JDK 1.5, supporto Java superato lo stesso tipo di parametri variabili a un metodo.

Dichiarare i parametri variabili del metodo sono i seguenti:

typeName... parameterName

Nella dichiarazione metodo, il tipo di parametro specificato dopo aver aggiunto i puntini di sospensione (...).

Un metodo può specificare un solo parametro variabile, deve essere l'ultimo metodo parametro. Eventuali parametri comuni devono essere dichiarati prima di esso.

Esempi

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);
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

The max value is 56.5
The max value is 3.0

Metodo di finalizzare ()

Java consente di definire un metodo in cui un oggetto viene richiamato prima che il distruttore garbage collector (riciclaggio), questo metodo viene chiamato finalize (), che viene utilizzato per cancellare gli oggetti recuperati.

Ad esempio, è possibile utilizzare la finalizzazione () per garantire che un file aperto oggetto è chiuso.

Nel metodo Finalize (), è necessario specificare l'operazione da eseguire quando l'oggetto viene distrutto.

finalizzare () è il formato generale:

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

Chiave protetta è un qualificatore, assicura che il metodo finalize () non viene mai chiamato il codice esterno alla classe.

Naturalmente, la raccolta dei rifiuti di Java può essere eseguita automaticamente dalla JVM. Se si usa il manuale, è possibile utilizzare il metodo di cui sopra.

Esempi

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");  
    }  
}  

Eseguire il codice precedente, i risultati di output sono i seguenti:

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