Latest web development tutorials

método Java

Nos primeiros capítulos, muitas vezes usamos para System.out.println (), então o que é?

println () é um método (Método), e do Sistema é a classe de sistema (Classe), a é o objeto saída padrão (Object). Uso desta declaração é chamar o Sistema de saída padrão classe do sistema objeto out método println ().

Então, qual é a maneira de fazer isso?

método Java é um conjunto de declarações que juntos executam uma função.

  • O método é uma combinação ordenada para resolver uma classe de problemas etapa
  • Métodos incluídos na classe ou objeto
  • O método foi desenvolvido no programa, referenciado noutros locais

métodos definidos

Em geral, a definição de um método compreendendo a seguinte sintaxe:

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

O método inclui um cabeçalho método e um corpo de método. Aqui são todos parte de um processo:

  • Modificador: modificador, que é opcional, para dizer ao compilador como chamar o método. Ele define o tipo de acesso do método.
  • Valor de retorno Tipo: método pode retornar valor. returnValueType é um método retorna o tipo de dados do valor. Alguns métodos de executar a ação desejada, mas nenhum valor de retorno. Neste caso, returnValueType palavra-chave void.
  • Nome do método: o nome real do método. nome do método e lista de parâmetros em conjunto, constituem a assinatura do método.
  • Tipo de parâmetro: parâmetro como um espaço reservado. Quando o método é chamado, o valor transmitido para o parâmetro. Este valor é chamado o argumento ou variável. Lista de parâmetros é o número de tipo de parâmetro do método, a ordem e parâmetros. Parâmetro é opcional, o método não pode conter quaisquer parâmetros.
  • Método corporal: O método compreende uma instrução específica para definir a função do método.

Tais como:

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

Você pode ter mais de um parâmetro:

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

Nota: Em algum outro método idiomas refere-se ao processo e funções. Um tipo de retorno não-void do valor de retorno da chamada método da função; método retorna um valor de retorno do tipo void chamado processo.

Exemplos

O método a seguir contém dois parâmetros num1 e num2, ele retorna o valor máximo destes dois parâmetros.

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

   return result; 
}

Method Invocation

Java suporta duas maneiras de chamar um método, de acordo com se o valor de retorno do método para selecionar.

Quando o programa chama um método, um programa para controlar o método é chamado. Quando instrução de retorno do método chamado é executado ou até que o corpo do método quando o fechamento de controle parêntese de retorno ao programa.

Quando o método retorna um valor, a invocação de método é geralmente tratado como um valor. Por exemplo:

int larger = max(30, 40);

Se o valor de retorno do método é nula, a chamada de método deve ser comunicado. Por exemplo, o método println retorna vazio. A chamada seguinte é uma declaração:

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

exemplo

O exemplo a seguir mostra como definir um método, e como chamá-lo:

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

Os exemplos acima são compilados os resultados como se segue:

The maximum between 5 and 2 is 5

Este programa contém um método principal e o método de máx. método JVM principal é invocado, além disso, principal e outros métodos nenhuma diferença.

Cabeça principal método é o mesmo que o exemplo mostrado, com modificadores públicos e estáticos, o valor do tipo de retorno void, nome do método é o principal, além com uma String [] parâmetros de tipo. String [] que o argumento é uma matriz de cadeias.


vazio de palavras-chave

Esta seção explica como declarar e chamar um método vazio.

O exemplo a seguir declara um método chamado printGrade, e chamá-lo para imprimir uma determinada pontuação.

exemplo

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

Os exemplos acima são compilados os resultados como se segue:

C

Aqui método printGrade é um método do tipo void, ele não retorna um valor.

A chamada de método vazio deve ser comunicado. Portanto, é o principal método da terceira linha da chama sob a forma do mapa. Como qualquer declaração termina com um ponto e vírgula como.


Passando parâmetros por valor

Chamar um método em que você precisa para fornecer os parâmetros, você deve fornecer a lista de parâmetros de acordo com a ordem especificada.

Por exemplo, o método seguinte de n vezes contínua imprime uma mensagem:

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

exemplo

O exemplo a seguir ilustra o efeito passados ​​por valor.

O programa cria um método que é utilizado para a troca de duas variáveis.

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

Os exemplos acima são compilados os resultados como se segue:

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

Passar dois parâmetros para chamar o método swap. Curiosamente, após o método é chamado, o valor do argumento não mudou.


métodos sobrecarregados

método max utiliza o acima aplica-se apenas para tipo de dados int. Mas se você deseja obter o valor máximo de dois dados de ponto flutuante digitá-lo?

A solução é criar um outro parâmetro com o mesmo nome, mas um método diferente, como mostrado no seguinte código:

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

Se você chamar o método max é passado um parâmetro int, método max do argumento int é invocado;

Se aprovada parâmetro de tipo duplo, o tipo de método de dupla experiência max é chamado, isso é chamado de sobrecarga de método;

Que os dois métodos de uma classe com o mesmo nome, mas com diferente lista de parâmetros.

compilador Java de acordo com a assinatura do método para determinar qual método deve ser chamado.

A sobrecarga de método pode tornar o programa mais legível. O método de execução é de perto tarefas relacionadas deve usar o mesmo nome.

métodos sobrecarregados devem ter diferentes lista de parâmetros. Você não pode simplesmente com base em diferentes tipos de modificadores ou retornar para métodos sobrecarregados.


Âmbito variável

variável de intervalo é parte do programa onde a variável pode ser referenciado.

Variáveis ​​dentro de definição de método são chamados de variáveis ​​locais.

Escopo de uma locais declarações de variáveis ​​desde o início até o fim do bloco que o contém.

As variáveis ​​locais devem ser declaradas antes de serem usadas.

O método de cobrir toda a gama dos parâmetros de método. O parâmetro é, na verdade, uma variável local.

parte de inicialização variável da instrução loop, o âmbito do seu papel no ciclo.

Mas a declaração corpo do loop variável é uma demonstração do seu âmbito de aplicação a partir dele para o fim do loop. Ele contém uma variável declarada como se segue:

Você pode de certa forma, os diferentes blocos não-aninhados declarar repetidamente uma variável local com o mesmo nome, mas você não pode ser aninhado dentro do bloco duas vezes para declarar variáveis ​​locais.

Usando os parâmetros de linha de comando

Às vezes você quer executar um programa quando ele, em seguida, passou a mensagem. Isso depende de passar argumentos de linha de comando para a função main () para conseguir.

argumento de linha de comando é seguido por informações sobre o tempo de execução após o nome do programa.

Exemplos

O programa a seguir imprime todos os argumentos de linha de 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]);
      }
   }
}

Como mostrado abaixo, execute o programa:

java CommandLine this is a command line 200 -100

Os resultados são como se segue:

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

construtor

Quando um objeto é criado quando o construtor é usado para inicializar o objeto. E é no construtor da classe com o mesmo nome, mas o construtor não tem valor de retorno.

Muitas vezes, usar o construtor para uma instância de classe valores iniciais variáveis, ou executar outras medidas necessárias para criar um objeto completo.

Querendo ou não você é um construtor personalizado, todas as classes têm construtor porque o Java fornece automaticamente um construtor padrão, que todos os membros são inicializados para zero.

Depois de ter definido o seu próprio construtor, o construtor padrão irá falhar.

Exemplos

Aqui está um exemplo de como usar o construtor:

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

Você pode chamar como este construtor para inicializar um objeto:

public class ConsDemo {

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

A maior parte do tempo preciso de um parâmetro de construtor.

Exemplos

Aqui está um exemplo de como usar o construtor:

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

Você pode chamar como este construtor para inicializar um objeto:

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

Os resultados são como se segue:

10 20

parâmetro variável

Em JDK 1.5, o suporte Java passando o mesmo tipo de parâmetros variáveis ​​para um método.

Declarar os parâmetros variáveis ​​do método são como se segue:

typeName... parameterName

Na declaração método, o tipo de parâmetro especificado após a adição de reticências (...).

Um método pode especificar apenas um parâmetro variável, ele deve ser o último método parâmetro. Quaisquer parâmetros comuns devem ser declarados antes dele.

Exemplos

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

Os exemplos acima são compilados os resultados como se segue:

The max value is 56.5
The max value is 3.0

finalize () Método

Java permite que você defina um método em que um objeto é chamado antes que o processo de destruição coletor de lixo (reciclagem), este método é chamado finalize (), que é usado para limpar os objetos recuperados.

Por exemplo, você pode usar o finalize () para garantir que um arquivo aberto objeto é fechado.

No método finalize (), você deve especificar a operação a ser executada quando o objeto é destruído.

finalize () é o formato geral:

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

Palavra-chave protected é um qualificador, ele garante que o método finalize () nunca é chamado o código fora da classe.

Claro, a coleta de lixo do Java pode ser feito automaticamente pelo JVM. Se você usar o manual, você pode usar o método acima.

Exemplos

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

Executar o código acima, os resultados da saída são os seguintes:

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