C#

Continuando o embalo do último Post (Tipo-Valor e Tipo-Referência), vamos ver o que é um Método que usa parâmetros por referência.

Primeiro vamos relembrar o que é um método que usa parâmetro por valor (provavelmente você já uso muito em funções):

class DiarioDeCodigos{

public static int inteiro;

public static void PassarValor(int param){

this.inteiro = param++;

}

}

A cima está claro que o valor passado é um inteiro, como vimos no último post o int é um tipo-valor, ao executar essa classe e passar qualquer variável como valor ela logicamente não será modificada, apenas o campo inteiro da classe DiarioDeCodigos será modificado.

static void Main(String args[]){

int inteiroTeste = 5;

DiarioDeCodigos.PassarValor(inteiroTeste);

Console.WriteLine(“O valor da variável inteiroTeste é: {0}”, inteiroTeste); //imprimi 5

Console.WriteLine(“O valor da do campo inteiro da classe DiarioDeCodigos é: {0}”, DiarioDeCodigos.inteiro); // imprimi 6

}

Nota: Observe que a classe DiarioDeCodigos não foi instânciada, a palavra-chave static me permite usar um método ou campo de uma classe sem instânciar.

Agora um exemplo de método que utiliza tipo-referência:

class Moto {

public int qtdTanqueGasolina;

public string nomeMoto;

public Moto(){

// Construtor padrão da classe Moto

this.nomeMoto = “SemNome”;

}

public Moto(string nomeMoto){

// Construtor sobrecarregado

this.nomeMoto = nomeMoto;

// Note que o nome do parâmetro é igual ao nome da variável, se você esquecer de
// colocar a palavra-chave “this” para dizer que aquela variável é um campo da classe
// esse código retornaria um erro

}

public void GetNomeMotoAntiga(Moto motoVelha){

Console.WriteLine(“O nome da moto da minha moto antiga é: {0}”, motoVelha.nomeMoto;

}

} // Fim da classe

Moto intruder92 = new Moto(“Intruder 250cc – Antiga”);

Moto intruder09 = new Moto(“Intruder 125cc – Nova”);

intruder09.GetNomeMotoAntiga(intruder92); // imprimi: “Intruder 250cc – Antiga”

No código a cima existe uma classe Moto e essa classe tem um método que recebe a referência de um outro objeto Moto para pegar o atributo nomeMoto de sua antiga Moto.

Ao executar o método GetNomeMotoAntiga pega a referência do campo nomeMoto da instância do objeto passado como parâmetro e imprimi na tela, o nome de sua antiga moto, esse é um exemplo de parâmetro de referência.

Simples assim.

Posts Relacionados