Ver Mensaje Individual
  #16 (permalink)  
Antiguo 15/07/2010, 01:50
Avatar de elAntonie
elAntonie
 
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 11 meses
Puntos: 10
Respuesta: this, como se usa, que hace?

Cita:
Iniciado por Copia Ver Mensaje
this devuelve la referencia al objeto para el cual ha sido invocado el metodo.
En el primer codigo que doy de LEAF, lo que se hace es invocar al metodo Leaf. Es como lo estoy entendiendo.

En el siguiente codigo lo que quiero entender es como se hace el llamado a Peeler
Código:
class Person{
   
 public void eat(Apple apple){
         Apple peeled=apple.getPeeled();
         System.out.println("Yummy");
      }
 }

class Peeler{
       static Apple peel(Apple apple){
         return apple;
      }
   }

    class Apple{
       Apple getPeeled(){
         return Peeler.peel(this);}
   }
    public class PassingThis{
       public static void main(String[] args){
         new Person().eat(new Apple());
      }
   }
Peeler define static Apple peel(Apple apple), tengo entendido que debe ser el tipo de la variable que se va a usar como (int apple) pero en este caso no es asi.

Y tanto la clase Person y Peel usan metodos deonde esperan a Apple apple, y supongo que se le pasan los datos desde new Person().eat(new Apple());

Ayudenme, quiza la forma que me enseñaron en un comentario anterior ayuda a explicar, no me saca del todo de las dudas.
La palabra reservada static hace referencia a un metodo o atributo de clase.

En tu caso es un metodo de clase (el metodo peel) es aquel que es llamado por todos los objetos de esa clase, en vez de definirse cada uno el suyo. Todo lo que se haga en ese metodo tiene que referirse a atributos tambien static.

Por eso la llamada es :
Código:
Peeler.peel(this);
en vez de

Código:
Peeler juan = new Peeler();
juan.peel(this);
La verdad es que el ejemplo que te han puesto es muy malo.
El usu principal que puede tener esto, puede ser el compartir variables entre objetos

Hay varios ejemplos, bastante mas clarificadores en google.

http://aprendiendojava.blogspot.com/...or-static.html

Saludos
__________________
--
NO. Tu problema no es urgente.

CCFVLS