Sunteți pe pagina 1din 11

Taller de Programación

Lenguajes Emergentes
Conceptos de Orientación a Objetos en
Java
Agenda
• Programación Orientada a Objetos
– Clases y Objetos
• Tipos de métodos
• Herencia
• Herencia múltiple (interfaces)

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 2


Programación Orientada a Objetos
(OOP)
• En OOP el principio básico es el
encapsulamiento
– Separa el qué (especificación funcional, pública)
– Del cómo (implementación, privada)
• OOP también engloba conceptos como
– Código genérico
– Herencia
– Polimorfismo
• En Java un objeto es una instancia de una clase
• Un objeto combina datos y operaciones
10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 3
Tipos de métodos
• Constructores
– Permiten inicializar un objeto
– Puede haber varios constructores con distinto
número de parámetros
– Si no hay constructor definido, los campos del objeto
se inicializan nulos
– El constructor debe tener el mismo nombre de la
clase

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 4


Tipos de métodos
• Mutators y Accessors
– Los campos de las clases son típicamente privados
– Para mirar o cambiar su valor se debe hacer por medio de
métodos que aíslan los detalles de la implementación
• toString()
– La clase Object tiene un método llamado toString() que
transforma el Objeto en un formato imprimible, este es
llamado automáticamente cuando se envía el objeto a alguna
salida (ej.: System.out.println())
• equals()
– La clase Object, también tiene un método llamado equals()
que se utiliza para ver si dos objetos tienen el mismo valor

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 5


Tipos de métodos
• this
– La referencia this identifica al objeto actual
– Permite acceder los campos propios (ej.: this.valor),
desde dentro de la clase
– Permite comparar si el objeto actual es el mismo
que otro (si son la misma referencia)
– Puede usarse como constructor

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 6


Tipos de métodos
• El modificador static
– En Java se pueden declarar campos, métodos, clases y bloques
de código con el modificador static
– Una clase static es un clase interna de nivel superior, visible y
accesable por todos los objetos de la clase
– Un método static está asociado a una clase (no a un objeto),
esto quiere decir que no es necesario “instanciar” la clase para
utilizarlo (ej.: Integer.parseInt(“1”));
– Un campo static funciona de modo similar a un método
– Un bloque static es ejecutado cuando la clase es cargada o
instanciada

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 7


Tipos de métodos
• Packages
– Agrupan clases
– Cada clase debe ser precedida por la declaración del
package
– Si a un campo o método no se le antepone el
modificador public o private es visible sólo en el
package

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 8


Herencia
• Permite reutilizar el trabajo hecho
• Se basa en la relación es-un(a)
– Ejemplos
• Círculo es-una Figura
• Auto es-un Vehículo
• Clase base
– La clase de la cual se derivan otras
• Clase derivada
– Hereda todas las propiedades de la clase base.
Puede agregar campos y métodos, o redefinir
métodos
10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 9
Herencia
• Clase derivada
– Los campos adicionales generalmente son privados
– Los métodos de la clase base que no se redefinen en
la clase derivada se heredan sin cambio, excepto por
el constructor
– Los métodos que se redefinen tienen prioridad
– Se pueden agregar nuevos métodos
– Los métodos públicos se pueden redefinir como
privados

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 10


Herencia múltiple
• En algunos lenguajes, una clase puede heredar de más
de una clase base. En Java esto no se permite, lo cual
evita los conflictos que se podrían producir al heredarse
definiciones incompatibles de métodos y variables.
• Interfaz
– Una interfaz es un mecanismo que permite lograr algunos de
los efectos de la herencia múltiple, sin sus problemas
– Una interfaz es una clase que sólo tiene métodos públicos
abstractos y campos públicos estáticos finales
– Se dice que una clase implementa a la interfaz si provee
definiciones para todos los métodos abstractos de la interfaz
– Una clase puede extender sólo a una clase base, pero puede
implementar muchas interfaces

10 de Agosto de 2009 Taller de Programación Lenguajes Emergentes 11

S-ar putea să vă placă și