This - deitel cap 8

9 respostas
LPJava

Bom pessoal o capitulo 8 do deitel fala sobre a referencia this em uma das suas primeiras paginas…mas n saquei direito como funciona… e a utilidade da mesma… ele n foi bem resumiu a explicação em poucas linhas e n foi claro. Entao postei abaixo um exemplo para vcs me explicar a diferença nas linhas comentadas:

public class Thistest
{
	public static void main(String args[])
	{
		Simple tempo = new Simple(15,30,19);
		System.out.println(tempo.explicito());
	}
}

	class Simple
	{
		private int hora;
		private int minuto;
		private int segundo;
		
	//construtor
	public Simple(int hora, int minuto, int segundo)
	{
		this.hora = hora;
		this.minuto = minuto;
		this.segundo = segundo;
	}

	
	public String explicito()
	{
		//aqui o this ta fazendo uma referencia ao metodo mais pq, n entendi o uso do this.
	
		return String.format("%24s: %s\n%24s: %s", "Universal usando this", this.toUniversal(),
		"universal sem this", toUniversal());
	}

	public String toUniversal()
	{
		// pela explicacao deitel aqui o this ta fazendo uma referencia intancia

		return String.format("%02d:%02d:%02d", this.hora, this.minuto, this.segundo);
	}
}
/*a ultima linha do metodo toUniversal sei que o this nao eh obrigatorio,
devido nao ter nenhuma variavel local com o mesmo nome da instancia.*/

vlw!!

9 Respostas

F

A palavra this é uma palavra reservada e é usada para se referir ao objeto em que vc está trabalhando, por exemplo:

Na sua classe Simple vc tem três variáveis de instancia e no construtor Simple vc passa 3 argumentos, o this.hora quer dizer isso na hora que o programa é executado “atributa o valor da variável hora(na esquerda) para a variável de instancia hora(na direita)”, em outras palavras, passe para a variável da classe o valor que está no argumento.

Tudo o que tem this.algumacoisa, esse algumacoisa sempre pertence a classe onde o this está escrito, e quando for o this sozinho, isso representa a classe propriamente dita.

Isso ajuda quando os nomes dos seus argumentos ou variáveis declaradas dentro de um método são iguais as da classe.

OBS: Se algo estiver errado me corrijam.

akumaldo
private String camilo;
public void setCamilo(String camilo)
{
 this.camilo = camilo; //entendeu? o this vai diferenciar o camilo do parametro do camilo atributo da sua classe!!
}

Ai vai o exemplo!!!:smiley:

E


será q esse “this” pode ser enxergado como um apontador, deo nó agora

diego2005

Apontador??? como assim?? Como já falaram ela é utilizada para referênciar a instância atual de uma classe. Exemplos:

public class Teste
{
    String nome;

    public Teste()
    {
         this("Camilo");
    }

    public Teste(String nome)
    {
         this.nome = nome;
    }

    public static void main(String[] args)
    {
        Teste t1 = new Teste();
        Teste t2 = new Teste("Diego");
    }
}

Espero que ajude....T+

LPJava

entao dentro de um metodo qdo quiser referencia a uma instancia da classe simplesmente uso o this?

A

Caso não exista argumento com mesmo nome da variável de instância, não será necessário usar this, a não ser que você queira.

Mas o this não se limita a isso. Ele pode ter várias formas, dependendo do que você extende na sua classe.

akumaldo

o this quando não é invocado e você está se referindo aos atributos da classe ele não precisa ser chamado explicitamente…
lembresse que o this pode ser usado por construtos e metodos…

ppontes

elias faical:
[size=9]será q esse “this” pode ser enxergado como um apontador, deo nó agora [/size]

diego2005:
[size=9]Apontador??? como assim?? …[/size]

O que elias faical se refere como apontador é pq this vai apontar pra algo que no caso é uma referência a intância local.

JMan

O this refere-se a instância atual do objeto.

Criado 21 de julho de 2006
Ultima resposta 21 de jul. de 2006
Respostas 9
Participantes 8