1
resposta

Ponteiro do método!?

Então quer dizer que os métodos possuem um ponteiro pra cada objeto já instanciado no código?? Tem ponteiro pra todas as variáveis que já foram incializada com essa classe??

Se for isso, como os métodos guardam todas essas referencias?

1 resposta

Olá, Desculpe eu não entendi bem a pergunta.

Metodos são as funções dentro da classe. Objeto é uma classe instânciada. Variáveis são tipos declarados fora de uma classe. Dentro da classe chamamos de atributos.

Os metodos não tem um ponteiro para cada classe instânciada no programa.

Os metodos possuem um ponteiro para a classe/objeto que ele pertence. Chamamos esse ponteiro de this Ex.

classe pessoa{

    string nome;
    string idade;

    void prencheCampos(string n, string i) {
        this.nome = n;
        this.idade = i;
    }    
}

Como eu coloquei os nomes das variáveis e dos atributos bem diferentes, não precisaria do this para explicitar quem é quem. Mas a grande maioria dos desenvolvedores fazem assim:

classe pessoa{

    string nome;
    string idade;

    void prencheCampos(string nome, string idade) {
        this.nome = nome;
        this.idade = idade;
    }    
}

Dessa forma estamos deichando explicito para o compilador e para quem lê o código que: Atributo nome da Classe "this.nome" está recebendo a variável nome.

Claro que não usamos o this só para isso mas como primeiro exemplo acho q está bom. Era isso que vc queria saber?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software