Autor Tema: [Java] Static, Instances  (Leído 335 veces)

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
[Java] Static, Instances
« en: 26 de Julio de 2010, 16:28:13 pm »
En Java
Aun no logro entender:
- Cual es la diferencia entre class variables y instance variables
     - Tengo entendido que los instance variables son asignados a cada objeto individualmente, mientras las class variables se asignan a la clase.. pero no me queda completamente claro..

- Que son instances exactamente
    - Tengo entendido que son objetos a la hora de ejecutar, pero no entiendo que significa exactamente
- Que son methods exactamente
     - Funciones?

Alguien me explica? Hasta me he leído esto: http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/java/javaOO/classvars.html
Y no capto
« Última modificación: 26 de Julio de 2010, 16:32:17 pm por x.mara.x »

Comunidad PHPeros

[Java] Static, Instances
« en: 26 de Julio de 2010, 16:28:13 pm »

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[Java] Static, Instances
« Respuesta #1 en: 26 de Julio de 2010, 17:34:14 pm »
Tienes que diferenciar entre una clase y un objeto.
La clase es el molde del que salen todos los objetos, es algo abstracto, y el objeto es algo concreto, se refiere a una "realidad", pero quiero decir, es conciso.
Tu puedes decir que la variable $color de tu OBJETO casa es azul, pero no tiene sentido que la variable $color de tu CLASE casa sea azul, porque una clase es abstracta y sus propiedades no están definidas, es un molde del que salen los objetos.

Es como al hablar de un libro.
Tu no puedes decir que el libro (clase) es azul, porque hay millones de libros y el ser azul no es un requisito para que algo sea un libro.
Pero sin embargo si puedes decir que el libro "La biblia de PHP5" (objeto) es naranja, porque eso es un objeto y es concreto, designa una realidad.

Instanciar una clase es crear un objeto de esa clase, es decir, usar ese "molde" (clase) para designar un objeto, por lo tanto, una "instance" es una clase instanciada, un objeto.

Espero que lo hayas entendido.

Los methods son funciones de las clases. Una función no esta incluido en una clase, es independiente, y un method (método) es una función de una clase.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Desconectado x.mara.x

  • PHPero Master
  • ******
  • Mensajes: 1.364
  • Karma: 57
  • Sexo: Femenino
    • Ver Perfil
Re:[Java] Static, Instances
« Respuesta #2 en: 26 de Julio de 2010, 17:41:30 pm »
Muchas gracias TLX, un +karma.. ahora.. cuando hay que usar "static" y cuando no? static es para la clase?

Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re:[Java] Static, Instances
« Respuesta #3 en: 27 de Julio de 2010, 01:33:26 am »
Static es para metodos o variables de clases.
Se utiliza para llamar a ese metodo sin instanciar esa clase.
Por ejemplo: un método de la clase Math, llamado sqrt, que calcule la raiz cuadrada de un numero que le pases como parámetro debe ser static, porque no puedes instanciar cada una de las operaciones matematicas que vayas a hacer, porque tendrías miles de objetos.
Entonces lo declaras como static y haces:

System.out.println(Math.sqrt(36));

Y listo!
Y si, si te da por pensarlo, out (es un objeto) es un miembro estático de System, y println (es un método del objeto out) es un miembro no estático de out, aunque entender esto es un poco mas complejo.

Espero que lo entiendas.

Saludos!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es