Foro de elhacker.net

Programación => Java => Mensaje iniciado por: darkxxx en 21 Julio 2007, 19:33 pm



Título: para que funciona this
Publicado por: darkxxx en 21 Julio 2007, 19:33 pm
bueno saludos he aqui de nuevo  ;D y les queria hacer otra pregunta cual es la funcion de el this porque lo que tengo entendido es para evitar ambiguedades pero no estoy muy seguro y con respecto al siguiente codigo que es lo que retornaria

Código:
class  triangulo {
private double base, altura;
public  triangulo datos(double base, double altura) {
This.base    = base ;
This.altura  = altura ;
return this;
}


public triangulo visualizar( ) {
System.out.println(“Base igual: “+base);
System.out.println(“Altura igual: “+altura);
return this;
}
}

y lo que no entiendo es que si su funcion es evitar ambiguedades porque cuando escribo

base = base;
altura = altura;

no me da ningun tipo de error y yo pensaba que me iba a dar un error en compilacion y que para poder hacer eso necesitaria usar el operador this pero veo que no y me gustaria que alguien me aclarara la duda gracias

saludos


Título: Re: para que funciona this
Publicado por: Ragnarok en 21 Julio 2007, 20:06 pm
http://java.sun.com/docs/books/tutorial/java/javaOO/thiskey.html


Título: Re: para que funciona this
Publicado por: darkxxx en 21 Julio 2007, 20:17 pm
exactamente lo que entendi se usa para evitar ambiguedades y tambien para invocar los parametros de la funcion pero ahora mi duda es en esta parte del codigo

This.base    = base ;
This.altura  = altura ;
return this;

que es lo que regresa return this; alli esta principalmente mi duda


Título: Re: para que funciona this
Publicado por: Ragnarok en 21 Julio 2007, 20:33 pm
this es el objeto en que está el método.

De todas formas, ese código es de lo peor que he visto, entre otras cosas, porque las clases se escriben con mayúsculas y this con minúsculas.

http://www.ccnyddm.com/AdvJava/java_constructor_tutorial.htm


Título: Re: para que funciona this
Publicado por: coolfrog en 22 Julio 2007, 21:41 pm
this guarda una referencia de la clase donde es utilizada, en vez de crear un nuevo objeto que instancie la clase se usa "this", tambien utilizado para evitar ambiguedades entre variables.
Código
  1. this.base    = base ;
  2. //en vez de eso se puede escribir:
  3. triangulo objeto=new triangulo();
  4. obj.base=base;
  5. //============ y cuando retorna this.
  6. //============ retorna la referencia a la clase
  7.  
Saludos...



Título: Re: para que funciona this
Publicado por: egyware en 24 Julio 2007, 20:48 pm
el this hace una referencia al mismo objeto en tu caso ase referencia a Triangulo
xauuuu ;D :xD


Título: Re: para que funciona this
Publicado por: NightZpy en 25 Julio 2007, 05:14 am
Una ambigüedad es cuando tienes declaradas dos variables del mismo nombre y con el mismo hámbito o alcance, es decir tienes:

Código:

class MyClass
{
         private String x;
         private String x;
}
//eso es un ejemplo de ambigüedad
class MyClass
{
         private String x;
         public String myFuncion(String x)
         {
                 
                  //como igualarias la x global a la clase a la x que solo existe dentro de esta funcion?
                  x=x;//no se sabria x es cual
                  this.x=x;//esto seria como si en tu mente dijera MyClass.x=myFuncion.x
           }
}

Salu2s....


Título: Re: para que funciona this
Publicado por: NekroByte en 28 Julio 2007, 11:21 am
Código
  1. this.base = base;
  2. this.altura = altura;

checa el código completo y ve:

this.base es la variable base que está al principio de la clase, que pertenece a la clase, y base a secas es el parámetro del método. Las dos variables se llaman igual así que si pones "base = base", ¿cómo sabe el compilador o el programa si te refieres a base del método o base de tu clase?