viernes, 4 de mayo de 2012

Introducción a OOP(Atributos de instancia y de clase)

Que son los atributos:

                Definición:
                               Los atributos determinan el estado que tiene un objeto. Estos pueden ser tipo de datos primitivos u objetos de cualquier clase.

                Ejemplo:
                               La clase persona tiene como atributos la altura, el color de ojos y la edad.

                Ejemplo en java:
                              
                               public class Persona {
                              
                               public int altura;
                               public String colorDeOjos
                               public int edad;
                              
                               }
               
                Utilizacion:

                               Persona mario = new Persona();
                               mario.altura = 183;
                               mario.colorDeOjos = “marrones”;
                               mario.edad = 40;


Atributos de Instancia

                Los atributos de instancia son aplicables a un solo objeto. Determinan el estado en el que se encuentra un objeto.

                Ejemplo:
                               El atributo altura en la clase Persona es de instancia, debido a que cada persona tendrá su propia altura.

                Ejemplo en Java:
                              
                               public class Persona{
                                              
                                               public int altura;

                               }

                Luego:
               
                               Persona mario = new Persona();
                               mario.altura = 184;
                               Persona maria = new Persona();
                               maria.altura = 152;




Atributos de clase:

                Un atributo de clase es un atributo común a todos los objetos instanciados de la clase. Al estar definido en la clase no hace falta instanciar la clase para utilizarlo. Las constantes se suelen definir como atributos de clase.

                Ejemplo:
                               El atributo cantidadDeOjos en la clase Persona es de clase, debido a que todas las instancias de la clase persona tendrán igual cantidad de ojos.

                Ejemplo en Java:

                               public class Persona{
                              
                                               public static int cantidadDeOjos = 2;

                               }


                Luego:

                               Persona mario = new Persona();
                               Persona maria = new Persona ();
                               mario.cantidadDeOjos                 // es igual a 2
                               maria.cantidadDeOjos                  // es igual a 2
                               Persona.cantidadDeOjos             // es igual a 2    


                Y este 2 es siempre el mismo, no se instancia un cantidadDeOjos para cada objeto, siempre es el mismo 2 de cantidadDeOjos.
Si modifico esta cantidad de ojos, se modifica para todas las instancias del objeto:
               
                               Persona.cantidadDeOjos = 3;

                entonces:

                               mario.cantidadDeOjos                 // es igual a 3
                               maria.cantidadDeOjos                  // es igual a 3

3 comentarios:

  1. Me quedaron claros los conceptos, muy bien explicado!.

    ResponderEliminar
  2. Hola, me parece que entendí, pero quería preguntarte si
    public String colorDeOjos
    public int edad;
    También serian atributos de instancia verdad, gracias por la respuesta

    ResponderEliminar
    Respuestas
    1. Sí, porque cada persona puede tener el color diferente y la edad varia, o dependiendo del programa que estés haciendo claro.

      Eliminar