SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Unidad II. Clases y Objetos                        Programación Orientada a Objetos


                                             II. Clases y Objetos.
2.1 Declaración de Clases
La declaración de una clase consta de dos partes claramente diferenciadas: cabecera y cuerpo.
La cabecera nos dará cuenta de los distintos aspectos que deberán ser tenidos en cuenta para el manejo de
esta clase, mientras que el cuerpo de la clase se reserva para la declaración de los atributos y métodos que
serán capaces de ejecutar los objetos generados a partir de esa clase.

Clase                     Cabecera
{
   Atributos             Cuerpo de clase
   Métodos
}

La sintaxis general de la declaración de una clase es la siguiente:

[modificador] class NombreClase [extends NombreSuperclase][implements listaDeInterfaces]¨
{

}

Todo lo que en la sintaxis de la declaración se ha especificado dentro de corchetes, es opcional. Por lo tanto
la declaración mínima para una clase es :
        class NombreClase

        {

        }

Los atributos de una clase sirven para almacenar datos de los objetos que se instancian a partir de esa clase.
La sintaxis general es la siguiente:
        [ModificadorDeAtributo] tipo nombreAtributo;

 Modificadores de atributo: Un atributo puede tener más de un modificador y en caso de ser así, estos se
especificarán uno detrás de otro, separados mediante un espacio en blanco.
         • static : Los Atributos pueden ser de instancia/objeto o de clase. Los atributos de objeto son
variables u objetos que almacenan valores distintos para objetos instanciados a partir de esa clase. Los
atributos de clase son variables u objetos que almacenan el mismo valor para todos los objetos instanciados
a partir de esa clase. Estos de definen con la palabra static.
         • final: La palabra reservada final, calificando a un atributo o variable sirve para declarar
constantes. Si además es static, se puede acceder a dicha constante simplemente anteponiendo el nombre
de la clase, sin necesidad de instanciar la clase creando un objeto de la misma.

�El valor de un atributo final debe ser asignado en la declaración del mismo.

Ejemplo:

                class Circulo
                {
                static final double PI=3.14159265;


                                                        1
    Instituto Tecnológico de Toluca                                                Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                        Programación Orientada a Objetos

                  private double radio;
                  /* Declaración de Método*/
                  }

2.2 Instanciación de una clase
Un objeto es una instancia de una clase, por lo que los términos objeto o instancia, son indistintos. Un
objeto se declara al definir su tipo de dato (Clase) y se crea o instancia, al reservar su espacio en memoria
(new).

          Declaración de objeto:         Nombre_de_clase Nombre_de_objeto;

          Creación de objeto:            Nombre_de_objeto = new Nombre_de_clase();

          Declaración y Creación: Nombre_de_clase Nombre_de_objeto = new Nombre_de_clase();




2.3 Referencia al Objeto actual o Auto referencia this
Para que un método conozca la identidad del objeto particular para el que ha sido invocado Java
proporciona una referencia al objeto denominada this. La referencia al objeto puede ser explícita o implícita.

       Referencia al objeto con this de manera implícita
           public void asigna (int valor)
           {
           v=valor;
           }

    Referencia al objeto con this de forma explícita
          public void asigna (int valor)
          {
          this.v=valor;
          }
Un uso común de this es cuando se usa el mismo nombre para un atributo y un parámetro, como ejemplo:

              public void asigna (int v)
              {
              this.v=v;
              }




2.4 Métodos
Los métodos son funciones que determinan el comportamiento de los objetos. Se declaran y definen dentro
de una clase por lo que cualquier objeto de esa clase tendrá disponibles a esos métodos.

Los métodos se pueden clasificar en tres grupos:


                                                           2
      Instituto Tecnológico de Toluca                                               Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                      Programación Orientada a Objetos

    a) Métodos de consulta: Sirven para extraer información de los objetos.
    b) Métodos modificadores: Sirven para cambiar uno o varios valores de los atributos de los objetos.
    c) Métodos de cálculo: Son los que manipulan los atributos de los objetos.

Definición y declaración de métodos

Un método está compuesto por dos partes que forman su definición; la cabecera y el cuerpo.

Sintaxis de definición:

// Cabecera
      Modificador_de_Acceso tipo_de_dato nombre _método (lista de parámetros) Excepciones
     {
//Cuerpo del método
        Sentencias;
      }
La cabecera está definida por:

    1) Modificador de acceso al método.
    2) Tipo de dato del valor de retorno, cuando el método regresa un resultado, dentro de su cuerpo se
       ocupa la palabra reservada return seguida del valor a devolver, siendo esta la última sentencia en
       ejecutarse en el método, si el método no requiere devolver un resultado se ocupa la palabra
       reservada void.
    3) Nombre del método, es el identificador que se invocará y se recomienda que sea descriptivo.
    4) Parámetros formales: Son los valores que el método recibe del exterior y que requiere para su
       función, cada uno precedido de su tipo de dato, se escriben entre paréntesis.
    5) Excepciones: Si el método puede lanzar excepciones se indica al final de la cabecera.

El cuerpo del método se encuentra encerrado entre llaves y contiene el grupo de sentencias que indican su
funcionamiento.

         Ejemplo de definición de método:

    o   Sin acceso definido, con retorno de resultado y lista de parámetros:
I               int sumar (int a, int b)
                {
                return a+b;
                }

    o   Con acceso público, sin retorno y sin parámetros
               public void sumar ()
               {
               c=a+b; /* En este caso las variables están declaradas como atributos
               }



Llamada a un método (Mensaje)




                                                     3
    Instituto Tecnológico de Toluca                                             Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                     Programación Orientada a Objetos

La llamada o la invocación a un método son conocidas como “mensaje”. El Mensaje es la forma en que un
programa se comunica con un objeto, ejecutando un método específico. Existen 3 tipos de mecanismos para
enviar mensajes:

    1) Fuera de la clase donde se define el método por medio de un mensaje compuesto por el objeto, el
       método y los parámetros actuales o argumentos.

        Sintaxis:    Objeto.Método(Argumentos)

   Ejemplos:          obj_persona.leer()

                     ob.sumar(a,b)

    2) Si es un método estático o de clase la llamada indica el nombre de la clase del método y los
       argumentos.

        Sintaxis:   NombreClase.Método(Argumentos)

  Ejemplo:          persona.metodo_estático()

    3) Cuando el método es utilizado en la misma clase que lo define, sólo se escribe el nombre del
       método.

  Ejemplo:          public void desplegar()
                    {
                       leer();
                    }

Atributos y Métodos de tipo static

Un atributo o método definido como static no es atributo o método de un objeto, sino que es un miembro
de la clase, es decir en el caso del atributo, si existen objetos creados solo hay una copia que comparten
todos los objetos de la clase. Un atributo o método static existe y puede ser utilizado aunque no exista
ningún objeto de la clase.

Modificadores de Acceso

Para controlar el acceso a los miembros de una clase, Java provee las palabras reservadas private, protected,
public, aunque también se pueden omitir convirtiendo el acceso en “predeterminado” o “de paquete”.

Los modificadores de acceso son utilizados para indicar el tipo de acceso permitido a cada miembro de la
clase, es decir el ámbito desde el cual se podrá acceder a él. Los modificadores son los siguientes:

    o     Acceso Predeterminado (de paquete).- Cuando no se especifica ningún tipo de modificador de
          acceso, el miembro de la clase puede ser accedido por cualquier clase que pertenezca al mismo
          paquete, ninguna otra clase o subclase, fuera de ese paquete tendrá acceso a los miembros.

    o     Acceso público (public).- Un miembro declarado public, esta accesible para cualquier otra clase o
          subclase que necesita utilizarlo. La interfaz de una clase está formada por todos los miembros
          públicos de la misma. Los atributos static generalmente son declarados públicos.



                                                      4
    Instituto Tecnológico de Toluca                                             Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                       Programación Orientada a Objetos

    o   Acceso Privado (private).- Un miembro declarado private es accesible solamente por los métodos
        de su propia clase. Esto significa que no puede ser accedido por los métodos de cualquier otra clase,
        ni por subclases.

    o   Acceso Protegido (protected).- El modificador protected permite que la propia clase, las subclases y
        las clases del mismo paquete accedan a los miembros.


    Modificador               Clase          Método   Atributo          Descripción
    Predeterminado                                                      Visibles en todo paquete.
                                   *             *         *
    Public                                                              Visibles en todos los paquetes.
                                   *             *         *
    Prívate                                                             Visibles en la propia clase.
                                                 *         *
    Protected                                                           Visibles en el paquete y en subclases
                                                 *         *            de esta clase en otro paquete.



Paso de parámetros y Devolución de valores desde métodos

Un método puede devolver un resultado al ámbito donde fue llamado si así es necesario. Para hacerlo se
ocupa la palabra reservada return seguida del valor a regresar. El tipo de dato de ese valor debe coincidir
con el tipo indicado en la cabecera del método.

   Ejemplo:    public float suma( float x, int y)
               {
                    float z= x+y;
                    return z;
               }
La llamada será:

             Int A, B; float res;
             A=5; B=10;
             res = Ob.suma (A, B);


La cabecera de un método especifica el número y tipo de los parámetros requeridos, existen dos formas de
pasar parámetros desde el mensaje, por valor y por referencia.




Parámetros por valor

Todos los tipos de datos primitivos se pasan a los métodos por valor, es decir sus valores se copian a nuevas
posiciones de memoria, por lo que si un argumento se cambia dentro del método, éste no cambiará en el
ámbito donde fue llamado.

 Ejemplo: // En la clase                                                  // En la llamada


                                                      5
    Instituto Tecnológico de Toluca                                               Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                       Programación Orientada a Objetos

           public int suma (int A, int B)                                        int A=10;
            {                                                                    int B=20;
            A= A+B;                                                              C=ob.suma(A,B);
            return A;
           }

Aunque en el método cambió el valor de A con el resultado de 10 +20, en el ámbito de la llamada A sigue
teniendo el valor de 10.

Paso de parámetros por referencia

Todos los objetos incluyendo a los arreglos se llaman tipos referencia. El paso de un objeto significa que la
referencia de éste es decir su dirección de memoria se pasa a un parámetro. Por lo tanto cualquier cambio
al objeto local que suceda dentro del método afectará al objeto original.

  Ejemplo:      public void suma(circulo ob)
                {
                   ob.radio=ob.radio+radio;

              }
  La llamada CIRCULO1.suma (CIRCULO2) causará que el radio del objeto CIRCULO2, se modifique con la
suma del radio del objeto CIRCULO1.

2.5 Constructores y Destructores
Un constructor es un tipo especial de método que inicializa el objeto con valores definidos. El constructor es
llamado automáticamente siempre que se crea un objeto. Cuando se crea un objeto sucede lo siguiente:

    a) Se asigna memoria para el objeto por medio del operador new.
    b) Se inicializan los atributos del objeto con los valores predeterminados por el sistema, los atributos
       numéricos con ceros y los alfanuméricos y las referencias con nulos.
    c) Se llama al constructor de la clase que puede ser uno entre varios y se encarga de inicializar los
       atributos con los valores indicados en este.

Así como existe un método que se ejecuta automáticamente cada vez que se construye un objeto, existe un
método que se invoca automáticamente cada vez que se destruye. Este método recibe el nombre genérico
de destructor y en java corresponde al método finalize().

Cuando un objeto es destruido ocurren varias cosas:

    a) Se llama al método finalize.
    b) El recolector de basura de java se encarga de eliminar al objeto, lo que conlleva a:
    c) Que se liberen los recursos que el objeto tuviera adjudicados (su espacio en memoria).

Un objeto es destruido automáticamente cuando se eliminan todas las referencias al mismo. Una referencia
a un objeto puede ser eliminada:

    1) Porque el flujo de la ejecución salga fuera del ámbito donde la referencia fue declarada
    2) Porque de manera explícita se le asigne a la referencia un valor nulo.



                                                      6
    Instituto Tecnológico de Toluca                                              Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                       Programación Orientada a Objetos



Declaración de métodos Constructor y Destructor

El constructor es un método de acceso público, que no tiene valor de retorno y que lleva el mismo nombre
de la clase, seguido de la lista de parámetros si son requeridos. Su declaración tiene la siguiente sintaxis.

Declaración de un constructor:

       public nombre_clase(Parámetros)
         {
         sentencias
         }
Ejemplo:
       public circulo()
         {
         Radio = 10
         }

Un destructor se ejecuta antes de que un objeto sea eliminado físicamente de la memoria. Si una clase no
proporciona la definición de un destructor el compilador proporciona uno a través de la clase object con la
siguiente sintaxis:

     protected void finalize()throws Throwable
         {
            //Sin código.
         }


Si se desea declarar un destructor en una clase se reescribe el método anterior. En una clase solo se puede
definir un método destructor a diferencia del constructor para el que puede haber varias definiciones.

Para forzar la completa recolección de basura se llama al método gc (garbaje collector) de la clase system,
escribiendo el siguiente segmento de codigo:

          Ob_A=null
          Runtime runtime=Runtime.getruntime():
          runtime.gc();
          runtime.runFinalization();

Tipos de constructores

Existen diversos tipos de constructores entre los que se distinguen:

    a) Constructores por omisión o por defecto: Es un constructor sin parámetros que inicializa los
       atributos del objeto con los valores predeterminados del sistema (ceros y nulos). Si una clase no
       especifica ningún constructor el compilador agrega automáticamente un constructor por defecto.
               Ejemplo:
               public circulo ()
                {
                  radio=0;
               }

                                                      7
    Instituto Tecnológico de Toluca                                              Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                        Programación Orientada a Objetos



    b) Constructor por parámetros: Este requiere del paso de un argumento que será utilizado para
       inicializar los atributos del objeto. Puede existir más de un constructor con paso de parámetros
       siempre y cuando sean diferentes en el tipo o la cantidad de parámetros utilizados.
                Ejemplo:
                public arreglo (int L)
                 {
                   A=new int[L]
                }
       La ejecución del constructor es cuando se crea el objeto:
                        arreglo ARREGLO1 = new arreglo(10);

    c) Constructor por copia: Es el que asigna otro objeto de su misma clase en el momento de la creación.
       Acepta como argumento una referencia al objeto que se va a copiar para después asignar elemento
       por elemento al objeto construido.
              Ejemplo:
                public fecha (fecha Ob)
                         {
                            This.d=Ob.d;
                            This.m=Ob.m;
                            This.a=Ob.a;
                        }
                La ejecución del constructor es:

                                      fecha FECHA2=new fecha(FECHA1);

                   Con lo que se crea una copia del objeto FECHA1, en el objeto FECHA2.


2.6 Sobrecarga de Métodos
La sobrecarga es la característica de permitir que existan varios métodos con el mismo nombre, pero con
diferente cantidad y tipo de parámetros.

La función de la sobrecarga es la de eliminar la necesidad de definir métodos deferentes que en esencia
hacen lo mismo. La definición de varios constructores es un ejemplo de Sobrecarga.

Ejemplo. Escribir la clase Fecha, con dia, mes y año como atributos con un método sobrecargado para la
asignación de datos.

class fecha
{
         int dd, mm, aa;
         public fecha() {
                  //Constructor por defecto
              dd=0;
              mm=0;
              aa=0;
         }
         public void setFecha(int dd,int mm,int aa) {

                                                         8
    Instituto Tecnológico de Toluca                                               Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                    Programación Orientada a Objetos

                           // metodo sobrecargado
                   this.dd=dd;
                   this.mm=mm;
                   this.aa=aa;
         }
         public void setFecha(int dd,int mm) {
                         //metodo sobrecargado
                 this.dd=dd;
                 this.mm=mm;
         }
          .
         .
         .
 }


La forma en que se invoque el método indica cual se ejecutará, los llamados pueden ser de la manera
siguiente:

                   int di=9, me=6, an=2006;
                   fecha ob1=new fecha();
                   fecha ob2=new fecha();
                   ob1.setFecha(di,me,an);
                   ob2.setFecha(di,me);




2.7 Sobrecarga de Operadores
El término operador sobrecargado se refiere a un operador que es capaz de desarrollar su función en varios
contextos sin necesidad de otras operaciones adicionales.

La sobrecarga de operadores permite dar un nuevo significado al símbolo de un operador.

En algunos lenguajes existen formas para la sobre carga de operadores.

El lenguaje Java, a diferencia de C++, no soporta la sobrecarga de operadores, esto significa que no es
posible predefinir el entorno en el que actúa un operador con respecto a los objetos de un tipo que el
programador haya definido como propio.

Sin embargo, Java sobrecarga internamente el operador “+”, ya que se puede utilizar para realizar una suma
aritmética, o para concatenar (juntar) elementos, es decir, su función depende del entorno exterior.

Ejemplo de la Sobrecarga de operador ++ en lenguaje c++, que define un método llamado operator,
seguido del símbolo del operador a sobrecargar:

class coordenada
{
        int x,y;
        void operator ++()


                                                    9
     Instituto Tecnológico de Toluca                                           Lic. Alma Patricia Vásquez Glez.
Unidad II. Clases y Objetos                       Programación Orientada a Objetos

          {
                    x++;
                    y++;
          }
…
}

    El objeto se puede incrementar ahora de la siguiente forma:

                    ob1++;

    Ejemplo de la Sobrecarga interna en Java:
         A=B+C;
         System.out.println( “El resultado es ”+ A);




                                                       10
      Instituto Tecnológico de Toluca                                              Lic. Alma Patricia Vásquez Glez.

Mais conteúdo relacionado

Mais procurados

10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadoresClara Patricia Avella Ibañez
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clasesvay82
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosjent46
 
Trabajo teorico de java
Trabajo teorico de javaTrabajo teorico de java
Trabajo teorico de javaUNEFA
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )brayan0015
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetosClara Patricia Avella Ibañez
 
Unidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosUnidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosAlix Indriago
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Sergio Sanchez
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevjtk1
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoJuan Carlos Espinoza
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Pooda4
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 

Mais procurados (20)

10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores10 Curso de POO en java - métodos modificadores y analizadores
10 Curso de POO en java - métodos modificadores y analizadores
 
Presentacion5
Presentacion5Presentacion5
Presentacion5
 
DAW - Desarrollo de clases
DAW - Desarrollo de clasesDAW - Desarrollo de clases
DAW - Desarrollo de clases
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Presentacion4
Presentacion4Presentacion4
Presentacion4
 
Trabajo teorico de java
Trabajo teorico de javaTrabajo teorico de java
Trabajo teorico de java
 
java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )java (clases,herencias,encapsulamiento,.. )
java (clases,herencias,encapsulamiento,.. )
 
9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos9 Curso de POO en java - variables, constantes y objetos
9 Curso de POO en java - variables, constantes y objetos
 
Unidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a ObjetosUnidad 3. obj 3.2 Programación Orientada a Objetos
Unidad 3. obj 3.2 Programación Orientada a Objetos
 
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
Unidad 2 ProgramacióN Orientada A Objetos (Repaso)
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Elementos De Una Clase
Elementos De Una ClaseElementos De Una Clase
Elementos De Una Clase
 
Programación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prevProgramación orientada a objetos con c++ prev
Programación orientada a objetos con c++ prev
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Clases en Java y todo lo relacionado
Clases en Java y todo lo relacionadoClases en Java y todo lo relacionado
Clases en Java y todo lo relacionado
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
Unidad 2 clases y objetos
Unidad 2 clases y objetosUnidad 2 clases y objetos
Unidad 2 clases y objetos
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 

Semelhante a POO Clases Objetos Declaración Atributos Métodos

Semelhante a POO Clases Objetos Declaración Atributos Métodos (20)

Encapsulamiento
EncapsulamientoEncapsulamiento
Encapsulamiento
 
Cesar adrian barrios alarcon unidad 2
Cesar adrian barrios alarcon      unidad 2       Cesar adrian barrios alarcon      unidad 2
Cesar adrian barrios alarcon unidad 2
 
Clases
ClasesClases
Clases
 
Elementos de una clase
Elementos de una claseElementos de una clase
Elementos de una clase
 
Teoria-de-la-unidad-2
Teoria-de-la-unidad-2Teoria-de-la-unidad-2
Teoria-de-la-unidad-2
 
Memch clases lep ii
Memch   clases lep iiMemch   clases lep ii
Memch clases lep ii
 
metodos de clases
metodos de clasesmetodos de clases
metodos de clases
 
Cuestionario cevallos
Cuestionario cevallosCuestionario cevallos
Cuestionario cevallos
 
Clases y objetos
Clases y objetosClases y objetos
Clases y objetos
 
Lenguaje de Programación Orientada a Objetos
Lenguaje  de  Programación  Orientada  a Objetos Lenguaje  de  Programación  Orientada  a Objetos
Lenguaje de Programación Orientada a Objetos
 
secme-23192.pdf
secme-23192.pdfsecme-23192.pdf
secme-23192.pdf
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Fundamentos de Java
Fundamentos de JavaFundamentos de Java
Fundamentos de Java
 
Cuestionario
Cuestionario Cuestionario
Cuestionario
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 
Cuestionario poo
Cuestionario pooCuestionario poo
Cuestionario poo
 

POO Clases Objetos Declaración Atributos Métodos

  • 1. Unidad II. Clases y Objetos Programación Orientada a Objetos II. Clases y Objetos. 2.1 Declaración de Clases La declaración de una clase consta de dos partes claramente diferenciadas: cabecera y cuerpo. La cabecera nos dará cuenta de los distintos aspectos que deberán ser tenidos en cuenta para el manejo de esta clase, mientras que el cuerpo de la clase se reserva para la declaración de los atributos y métodos que serán capaces de ejecutar los objetos generados a partir de esa clase. Clase Cabecera { Atributos Cuerpo de clase Métodos } La sintaxis general de la declaración de una clase es la siguiente: [modificador] class NombreClase [extends NombreSuperclase][implements listaDeInterfaces]¨ { } Todo lo que en la sintaxis de la declaración se ha especificado dentro de corchetes, es opcional. Por lo tanto la declaración mínima para una clase es : class NombreClase { } Los atributos de una clase sirven para almacenar datos de los objetos que se instancian a partir de esa clase. La sintaxis general es la siguiente: [ModificadorDeAtributo] tipo nombreAtributo; Modificadores de atributo: Un atributo puede tener más de un modificador y en caso de ser así, estos se especificarán uno detrás de otro, separados mediante un espacio en blanco. • static : Los Atributos pueden ser de instancia/objeto o de clase. Los atributos de objeto son variables u objetos que almacenan valores distintos para objetos instanciados a partir de esa clase. Los atributos de clase son variables u objetos que almacenan el mismo valor para todos los objetos instanciados a partir de esa clase. Estos de definen con la palabra static. • final: La palabra reservada final, calificando a un atributo o variable sirve para declarar constantes. Si además es static, se puede acceder a dicha constante simplemente anteponiendo el nombre de la clase, sin necesidad de instanciar la clase creando un objeto de la misma. �El valor de un atributo final debe ser asignado en la declaración del mismo. Ejemplo: class Circulo { static final double PI=3.14159265; 1 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 2. Unidad II. Clases y Objetos Programación Orientada a Objetos private double radio; /* Declaración de Método*/ } 2.2 Instanciación de una clase Un objeto es una instancia de una clase, por lo que los términos objeto o instancia, son indistintos. Un objeto se declara al definir su tipo de dato (Clase) y se crea o instancia, al reservar su espacio en memoria (new). Declaración de objeto: Nombre_de_clase Nombre_de_objeto; Creación de objeto: Nombre_de_objeto = new Nombre_de_clase(); Declaración y Creación: Nombre_de_clase Nombre_de_objeto = new Nombre_de_clase(); 2.3 Referencia al Objeto actual o Auto referencia this Para que un método conozca la identidad del objeto particular para el que ha sido invocado Java proporciona una referencia al objeto denominada this. La referencia al objeto puede ser explícita o implícita.  Referencia al objeto con this de manera implícita public void asigna (int valor) { v=valor; }  Referencia al objeto con this de forma explícita public void asigna (int valor) { this.v=valor; } Un uso común de this es cuando se usa el mismo nombre para un atributo y un parámetro, como ejemplo: public void asigna (int v) { this.v=v; } 2.4 Métodos Los métodos son funciones que determinan el comportamiento de los objetos. Se declaran y definen dentro de una clase por lo que cualquier objeto de esa clase tendrá disponibles a esos métodos. Los métodos se pueden clasificar en tres grupos: 2 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 3. Unidad II. Clases y Objetos Programación Orientada a Objetos a) Métodos de consulta: Sirven para extraer información de los objetos. b) Métodos modificadores: Sirven para cambiar uno o varios valores de los atributos de los objetos. c) Métodos de cálculo: Son los que manipulan los atributos de los objetos. Definición y declaración de métodos Un método está compuesto por dos partes que forman su definición; la cabecera y el cuerpo. Sintaxis de definición: // Cabecera Modificador_de_Acceso tipo_de_dato nombre _método (lista de parámetros) Excepciones { //Cuerpo del método Sentencias; } La cabecera está definida por: 1) Modificador de acceso al método. 2) Tipo de dato del valor de retorno, cuando el método regresa un resultado, dentro de su cuerpo se ocupa la palabra reservada return seguida del valor a devolver, siendo esta la última sentencia en ejecutarse en el método, si el método no requiere devolver un resultado se ocupa la palabra reservada void. 3) Nombre del método, es el identificador que se invocará y se recomienda que sea descriptivo. 4) Parámetros formales: Son los valores que el método recibe del exterior y que requiere para su función, cada uno precedido de su tipo de dato, se escriben entre paréntesis. 5) Excepciones: Si el método puede lanzar excepciones se indica al final de la cabecera. El cuerpo del método se encuentra encerrado entre llaves y contiene el grupo de sentencias que indican su funcionamiento. Ejemplo de definición de método: o Sin acceso definido, con retorno de resultado y lista de parámetros: I int sumar (int a, int b) { return a+b; } o Con acceso público, sin retorno y sin parámetros public void sumar () { c=a+b; /* En este caso las variables están declaradas como atributos } Llamada a un método (Mensaje) 3 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 4. Unidad II. Clases y Objetos Programación Orientada a Objetos La llamada o la invocación a un método son conocidas como “mensaje”. El Mensaje es la forma en que un programa se comunica con un objeto, ejecutando un método específico. Existen 3 tipos de mecanismos para enviar mensajes: 1) Fuera de la clase donde se define el método por medio de un mensaje compuesto por el objeto, el método y los parámetros actuales o argumentos. Sintaxis: Objeto.Método(Argumentos) Ejemplos: obj_persona.leer() ob.sumar(a,b) 2) Si es un método estático o de clase la llamada indica el nombre de la clase del método y los argumentos. Sintaxis: NombreClase.Método(Argumentos) Ejemplo: persona.metodo_estático() 3) Cuando el método es utilizado en la misma clase que lo define, sólo se escribe el nombre del método. Ejemplo: public void desplegar() { leer(); } Atributos y Métodos de tipo static Un atributo o método definido como static no es atributo o método de un objeto, sino que es un miembro de la clase, es decir en el caso del atributo, si existen objetos creados solo hay una copia que comparten todos los objetos de la clase. Un atributo o método static existe y puede ser utilizado aunque no exista ningún objeto de la clase. Modificadores de Acceso Para controlar el acceso a los miembros de una clase, Java provee las palabras reservadas private, protected, public, aunque también se pueden omitir convirtiendo el acceso en “predeterminado” o “de paquete”. Los modificadores de acceso son utilizados para indicar el tipo de acceso permitido a cada miembro de la clase, es decir el ámbito desde el cual se podrá acceder a él. Los modificadores son los siguientes: o Acceso Predeterminado (de paquete).- Cuando no se especifica ningún tipo de modificador de acceso, el miembro de la clase puede ser accedido por cualquier clase que pertenezca al mismo paquete, ninguna otra clase o subclase, fuera de ese paquete tendrá acceso a los miembros. o Acceso público (public).- Un miembro declarado public, esta accesible para cualquier otra clase o subclase que necesita utilizarlo. La interfaz de una clase está formada por todos los miembros públicos de la misma. Los atributos static generalmente son declarados públicos. 4 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 5. Unidad II. Clases y Objetos Programación Orientada a Objetos o Acceso Privado (private).- Un miembro declarado private es accesible solamente por los métodos de su propia clase. Esto significa que no puede ser accedido por los métodos de cualquier otra clase, ni por subclases. o Acceso Protegido (protected).- El modificador protected permite que la propia clase, las subclases y las clases del mismo paquete accedan a los miembros. Modificador Clase Método Atributo Descripción Predeterminado Visibles en todo paquete. * * * Public Visibles en todos los paquetes. * * * Prívate Visibles en la propia clase. * * Protected Visibles en el paquete y en subclases * * de esta clase en otro paquete. Paso de parámetros y Devolución de valores desde métodos Un método puede devolver un resultado al ámbito donde fue llamado si así es necesario. Para hacerlo se ocupa la palabra reservada return seguida del valor a regresar. El tipo de dato de ese valor debe coincidir con el tipo indicado en la cabecera del método. Ejemplo: public float suma( float x, int y) { float z= x+y; return z; } La llamada será: Int A, B; float res; A=5; B=10; res = Ob.suma (A, B); La cabecera de un método especifica el número y tipo de los parámetros requeridos, existen dos formas de pasar parámetros desde el mensaje, por valor y por referencia. Parámetros por valor Todos los tipos de datos primitivos se pasan a los métodos por valor, es decir sus valores se copian a nuevas posiciones de memoria, por lo que si un argumento se cambia dentro del método, éste no cambiará en el ámbito donde fue llamado. Ejemplo: // En la clase // En la llamada 5 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 6. Unidad II. Clases y Objetos Programación Orientada a Objetos public int suma (int A, int B) int A=10; { int B=20; A= A+B; C=ob.suma(A,B); return A; } Aunque en el método cambió el valor de A con el resultado de 10 +20, en el ámbito de la llamada A sigue teniendo el valor de 10. Paso de parámetros por referencia Todos los objetos incluyendo a los arreglos se llaman tipos referencia. El paso de un objeto significa que la referencia de éste es decir su dirección de memoria se pasa a un parámetro. Por lo tanto cualquier cambio al objeto local que suceda dentro del método afectará al objeto original. Ejemplo: public void suma(circulo ob) { ob.radio=ob.radio+radio; } La llamada CIRCULO1.suma (CIRCULO2) causará que el radio del objeto CIRCULO2, se modifique con la suma del radio del objeto CIRCULO1. 2.5 Constructores y Destructores Un constructor es un tipo especial de método que inicializa el objeto con valores definidos. El constructor es llamado automáticamente siempre que se crea un objeto. Cuando se crea un objeto sucede lo siguiente: a) Se asigna memoria para el objeto por medio del operador new. b) Se inicializan los atributos del objeto con los valores predeterminados por el sistema, los atributos numéricos con ceros y los alfanuméricos y las referencias con nulos. c) Se llama al constructor de la clase que puede ser uno entre varios y se encarga de inicializar los atributos con los valores indicados en este. Así como existe un método que se ejecuta automáticamente cada vez que se construye un objeto, existe un método que se invoca automáticamente cada vez que se destruye. Este método recibe el nombre genérico de destructor y en java corresponde al método finalize(). Cuando un objeto es destruido ocurren varias cosas: a) Se llama al método finalize. b) El recolector de basura de java se encarga de eliminar al objeto, lo que conlleva a: c) Que se liberen los recursos que el objeto tuviera adjudicados (su espacio en memoria). Un objeto es destruido automáticamente cuando se eliminan todas las referencias al mismo. Una referencia a un objeto puede ser eliminada: 1) Porque el flujo de la ejecución salga fuera del ámbito donde la referencia fue declarada 2) Porque de manera explícita se le asigne a la referencia un valor nulo. 6 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 7. Unidad II. Clases y Objetos Programación Orientada a Objetos Declaración de métodos Constructor y Destructor El constructor es un método de acceso público, que no tiene valor de retorno y que lleva el mismo nombre de la clase, seguido de la lista de parámetros si son requeridos. Su declaración tiene la siguiente sintaxis. Declaración de un constructor: public nombre_clase(Parámetros) { sentencias } Ejemplo: public circulo() { Radio = 10 } Un destructor se ejecuta antes de que un objeto sea eliminado físicamente de la memoria. Si una clase no proporciona la definición de un destructor el compilador proporciona uno a través de la clase object con la siguiente sintaxis: protected void finalize()throws Throwable { //Sin código. } Si se desea declarar un destructor en una clase se reescribe el método anterior. En una clase solo se puede definir un método destructor a diferencia del constructor para el que puede haber varias definiciones. Para forzar la completa recolección de basura se llama al método gc (garbaje collector) de la clase system, escribiendo el siguiente segmento de codigo: Ob_A=null Runtime runtime=Runtime.getruntime(): runtime.gc(); runtime.runFinalization(); Tipos de constructores Existen diversos tipos de constructores entre los que se distinguen: a) Constructores por omisión o por defecto: Es un constructor sin parámetros que inicializa los atributos del objeto con los valores predeterminados del sistema (ceros y nulos). Si una clase no especifica ningún constructor el compilador agrega automáticamente un constructor por defecto. Ejemplo: public circulo () { radio=0; } 7 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 8. Unidad II. Clases y Objetos Programación Orientada a Objetos b) Constructor por parámetros: Este requiere del paso de un argumento que será utilizado para inicializar los atributos del objeto. Puede existir más de un constructor con paso de parámetros siempre y cuando sean diferentes en el tipo o la cantidad de parámetros utilizados. Ejemplo: public arreglo (int L) { A=new int[L] } La ejecución del constructor es cuando se crea el objeto: arreglo ARREGLO1 = new arreglo(10); c) Constructor por copia: Es el que asigna otro objeto de su misma clase en el momento de la creación. Acepta como argumento una referencia al objeto que se va a copiar para después asignar elemento por elemento al objeto construido. Ejemplo: public fecha (fecha Ob) { This.d=Ob.d; This.m=Ob.m; This.a=Ob.a; } La ejecución del constructor es: fecha FECHA2=new fecha(FECHA1); Con lo que se crea una copia del objeto FECHA1, en el objeto FECHA2. 2.6 Sobrecarga de Métodos La sobrecarga es la característica de permitir que existan varios métodos con el mismo nombre, pero con diferente cantidad y tipo de parámetros. La función de la sobrecarga es la de eliminar la necesidad de definir métodos deferentes que en esencia hacen lo mismo. La definición de varios constructores es un ejemplo de Sobrecarga. Ejemplo. Escribir la clase Fecha, con dia, mes y año como atributos con un método sobrecargado para la asignación de datos. class fecha { int dd, mm, aa; public fecha() { //Constructor por defecto dd=0; mm=0; aa=0; } public void setFecha(int dd,int mm,int aa) { 8 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 9. Unidad II. Clases y Objetos Programación Orientada a Objetos // metodo sobrecargado this.dd=dd; this.mm=mm; this.aa=aa; } public void setFecha(int dd,int mm) { //metodo sobrecargado this.dd=dd; this.mm=mm; } . . . } La forma en que se invoque el método indica cual se ejecutará, los llamados pueden ser de la manera siguiente: int di=9, me=6, an=2006; fecha ob1=new fecha(); fecha ob2=new fecha(); ob1.setFecha(di,me,an); ob2.setFecha(di,me); 2.7 Sobrecarga de Operadores El término operador sobrecargado se refiere a un operador que es capaz de desarrollar su función en varios contextos sin necesidad de otras operaciones adicionales. La sobrecarga de operadores permite dar un nuevo significado al símbolo de un operador. En algunos lenguajes existen formas para la sobre carga de operadores. El lenguaje Java, a diferencia de C++, no soporta la sobrecarga de operadores, esto significa que no es posible predefinir el entorno en el que actúa un operador con respecto a los objetos de un tipo que el programador haya definido como propio. Sin embargo, Java sobrecarga internamente el operador “+”, ya que se puede utilizar para realizar una suma aritmética, o para concatenar (juntar) elementos, es decir, su función depende del entorno exterior. Ejemplo de la Sobrecarga de operador ++ en lenguaje c++, que define un método llamado operator, seguido del símbolo del operador a sobrecargar: class coordenada { int x,y; void operator ++() 9 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.
  • 10. Unidad II. Clases y Objetos Programación Orientada a Objetos { x++; y++; } … } El objeto se puede incrementar ahora de la siguiente forma: ob1++; Ejemplo de la Sobrecarga interna en Java: A=B+C; System.out.println( “El resultado es ”+ A); 10 Instituto Tecnológico de Toluca Lic. Alma Patricia Vásquez Glez.