Métodos De Java
Os métodos são usados enquanto os blocos de edifício de seu programa, executando as tarefas que podem ser chamadas repetidas vezes e usando o mesmo código executar cada vez a tarefa. As partes básicas mas fundamentais da declaração de um método são seu nome, sua tipo do retorno, assinatura do parâmetro, e suportes curly de segmento de código. As seguintes linhas do código são um exemplo de uma declaração do método. doSomething() vago da estática {// adiciona o código
aqui}
Este método é chamado doSomething e tem um tipo do retorno de vácuo, que indica simplesmente que o método não retorna um valor. Nós temos visto o vácuo do keyword já, que é o tipo do retorno do cano principal do método. Se o método que doSomething fosse adicionado a sua classe principal do programa, então no método principal da classe você chamaria o método que doSomething dando entrada ao seguinte código: doSomething(); Anote as necessidades doSomething do método ser de
estática neste momento porque o cano principal do método, de que
nós estamos supondo o método que doSomething está indo ser chamado,
é também estática. O método que doSomething não
necessitaria ser de estática se nós criássemos um exemplo da classe
a que doSomething pertenceria. Se você quiser um método que retorne um valor, você deve especificar o tipo do retorno do método, e então você deve usar o retorno do keyword no bloco do código do método especificar o valor retornado. getFiveDoubled() interno de estática {retorno 10;
}
O seguinte método retornará simplesmente o valor de 10 a onde quer que foi chamado de. A seguinte linha do código podia ser adicionada, para o exemplo, em seu método principal para atribuir este valor a uma variável: myNumber = getFiveDoubled() internos; Esta linha do código atribuirá o valor de 10 ao myNumber variável. Anote apenas porque o método getFiveDoubled tem agora um tipo do retorno, ele não significa que não pode ser convidado seus próprios. getFiveDoubled(); Este método não fará essencialmente nada, mas você pode ter um método que execute uma tarefa requerida e retorne então um valor, que você queira ignorar. Um método que tenha um valor do retorno (não vácuo) deve ter uma indicação do retorno em cada ponto possível da saída do método. O compilador escolherá acima se um trajeto sem um valor do retorno for possível. Na outra mão, se você tiver um método com tipo do retorno vácuo e o quiser então retirar cedo fora do método, você pode usar o retorno do keyword no seus próprios. Para o exemplo, faça exame do seguinte código: retorno vago do doSomething() do público {if(leaveEarly
== verdadeiro); //continua mais com o descanso do código}
Isto é similar a como a indicação da ruptura é usada retirar fora de determinados blocos do código, tais como casos do interruptor e laços, como nós vimos mais cedo. O exemplo que nós vimos apenas é um exemplo muito básico, mas o uso do retorno do keyword neste exemplo pode ser muito útil para imediatamente retirar fora dos conjuntos complicados do código em um método dado. Passagem De ParâmetroO método precedente, getFiveDoubled, é porque retornará somente um valor, 10 consideravelmente pointless e muito inconvenient. Entretanto, nós poderíamos criar um método que fizesse exame em todo o número, dobramo-lo, e retornamo-los então o valor dobrado. Isto pode ser conseguido usando a passagem de parâmetro. A passagem de parâmetro permite que você passe valores a um método que o método possa então manipular. O seguinte método contem um parâmetro, que é dobrado e o valor novo é retornado. número interno) do doubleNumber(int {número * = 2;
número do retorno; }
Como você pode ver, o parâmetro é um número chamado variável do tipo interno e é especificado entre os suportes que seguem o nome do método. Para chamar este método, você poderia, para o exemplo, usar o seguinte código: //dobro 2 do myNumber interno dos iguais 4 = doubleNumber(2); //dobra então seu número atual 4 do myNumber = do doubleNumber(myNumber) dos iguais 8; //quadruple então seu número atual para igualar o myNumber 32 = o doubleNumber(doubleNumber(myNumber)); Esta última linha do código chamará o doubleNumber do método duas vezes, primeiramente retornando um valor que seja o o valor dobro do myNumber, que é passado por sua vez então porque um parâmetro à segunda chamada ao doubleNumber que retorna eventualmente o valor final de 32, atribuindo o ao myNumber variável. Para reiterate o que nós mencionamos mais cedo, se o valor que você passa enquanto um parâmetro é de um tipo de dados primitivo variável, a variável própria não for passado ao método. Uma variável nova com esse valor é criada no método e usada então. Isto significa que as mudanças feitas a este valor dentro do método chamado não afetarão o valor da variável original. Você pode também ter mais de um parâmetro, usando uma vírgula separar parâmetros consecutivos. O seguinte exemplo simples, SpidersEyes.java, contem o método multiplica, que contem dois parâmetros que são ambos do tipo interno e retorna o valor dos dois parâmetros multiplicados junto. Está aqui o código: classe pública SpidersEyes {valueA interno de estática
público do multiply(int, valueB interno) {valueA do retorno * valueB;
} args[ main(String vago ] da estática pública)
{numberOfSpiders internos = 10; eyesPerSpider interno = 8;
totalEyes = multiply(numberOfSpiders, eyesPerSpider internos);
System.out.println("Total eyes =" + totalEyes); }}
Há duas coisas a anotar deste exemplo. Primeiramente, nós usamos a estática do keyword para o método multiplicamos. Isto é porque não há nenhum exemplo da classe SpidersEyes criado atualmente, assim para que o cano principal, que é de estática, a poder alcançar o método multiplica, ele deve ser de estática também. A segunda coisa à observação é que o cano principal do método faz exame também de um parâmetro, que seja uma disposição das cordas. Assinaturas Do MétodoÉ possível ter dois métodos que compartilham do mesmo nome. Entretanto, devem ter assinaturas diferentes porque de outra maneira quando você deseja chamar um dos métodos, o compilador não têm nenhuma maneira de diferenciar um do outro, porque o invocation do método é baseado no compilador que reconhece a assinatura. Tendo métodos do mesmo nome mas com assinaturas diferentes é sabido como sobrecarregar o método. O nome do método e a assinatura do parâmetro desse método determinam a assinatura de um método. O tipo do retorno de um método não influencia sua assinatura. Daqui você não pode ter dois métodos com o mesmo nome com dois valores do retorno diferentes com a mesma assinatura do parâmetro. No exemplo precedente, SpidersEyes.java, nós tivemos um método chamado para multiplicar, que fizesse exame de dois valores de parâmetro do tipo internos, retornando o valor dos valores de parâmetro multiplicados junto. Se nós também incluíssemos um método que fizesse a mesma coisa mas usássemos valores do tipo dobro preferivelmente, nós poderíamos criar um outro método com o mesmo nome mas com uma assinatura diferente do parâmetro. multiply(int interno de estática público a, b) interno
{retorne a * b; } a multiply(double dobro de estática público,
b) dobro {retorne a * b; }
A assinatura do parâmetro é determinada pelos tipos de dados dos parâmetros e conseqüentemente do número dos parâmetros também. Deixe-nos dizer que nós adicionamos agora o seguinte método junto com os dois métodos precedentes: multiply(int longo de estática público a, b) interno
{retorno (long)(a * b); }
O programa compilaria não mais por muito tempo porque este método e o original multiplicam a parte do método a mesma assinatura. Têm o mesmo nome e também os mesmos parâmetros ambos—da assinatura dois do parâmetro do tipo interno. A solução a mais óbvia deve mudar a assinatura do parâmetro do último método aos parâmetros da tomada dois do tipo longos. multiply(long longo de estática público a, b) longo
{retorne a * b; }
Isto trabalhará agora porque as assinaturas do parâmetro são diferentes. Se você for incapaz de alterar a assinatura do parâmetro em uma maneira razoável, não incomode; elasticidade justa os nomes diferentes dos métodos (por exemplo, multiplyInt, multiplyDouble, multiplyLong, etc.). este é um artigo adicionado por Gabriela C. Perez
|
|||
|