Logo Studenta

Fundamentos de la programación orientada a objetos en Java

¡Este material tiene más páginas!

Vista previa del material en texto

Fundamentos de 
Programación 
Orientada a Objetos en 
Java
Ing. Marcelo Parisholon sw
 
Fundamentos POO
• Que es un Objeto?
• Que es un Mensaje?
• Que es una Clase?
• Que es la Herencia?
• Que es una Interface?
• Como traducir estos conceptos en 
codigo?
Ing. Marcelo Parisholon sw
 
Que es un Objeto?
• Observar Objetos del mundo Real
– Caracteristicas:
• Estado
• Comportamiento
• Objetos de Software 
– Miembros
• Variables (identificadores)
• Métodos (funciones)
• Modelar Objetos:
– Reales
– Abstractos
Ing. Marcelo Parisholon sw
 
Instancia de un Objeto-Encapsulación
• Objeto Bicicleta
– Estados (variables):
• Velocidad
• Ritmo de Pedaleo
• Marcha
– Comportamientos(métodos):
• Frenar
• Cambiar el Ritmo de Pedaleo
• Cambiar la Marcha
• INSTANCIA: Una Bicicleta en particular
– Variables de Instancia:
• Velocidad: 10km/h
• Ritmo de Pedaleo: 20 rpm
• Marcha: 3
– Métodos de Instancia:
• Frenar  Disminuir Veloc.(10)
• Cambiar el Ritmo de Pedaleo
• Cambiar la Marcha
ENCAPSULACIÓN: 
variables de instancia solo son 
accedidas desde los 
métodos
Ing. Marcelo Parisholon sw
 
Encapsulación
ENCAPSULACIÓN: 
variables de instancia solo son accedidas 
desde los métodos
Modificadores de Acceso
Beneficios:
• Modularidad: 
• Escribir/Mantener Código independiente 
de otros.
• Ocultar Información: 
• Interface Pública 
• Implementación Privada
Ing. Marcelo Parisholon sw
 
Que es un Mensaje?
Funcionalidad Alto Nivel es un conjuntos de 
objetos interactuando
Mensaje: 
• comunicación/interaccion entre objetos.
Partes Mensaje:
• Objeto Destinatario
• Método
• Parámetros
Beneficios:
• Mensajes permite acceder 
Comportamiento sin acceso variables
• Mensajes permiten a Objetos interactuar 
aunque no esten en el mismo proceso y/o 
equipo
Ing. Marcelo Parisholon sw
 
Que es una Clase?
Existen Objetos de la misma 
naturaleza/tipo que comparten 
caracteristicas similares
Definición: una CLASE es un 
Modelo/Plano que define las 
variables y métodos comunes a 
todos los OBJETOS de un cierto 
TIPO.
Ing. Marcelo Parisholon sw
 
Objeto - Clase
Un OBJETO es una instancia de una CLASE
Instanciar Objeto:
• Se identifica al Objeto
• Reserva Memoria para cada 
VARIABLE 
(VARIABLE DE INSTANCIA )
• Las variables de instancia son 
independientes
Ing. Marcelo Parisholon sw
 
Variables/Métodos de Clase
una VARIABLE de Clase es 
común a todas las 
INSTANCIAS de una CLASE
Al Instanciar el PRIMER Objeto:
• Reserva Memoria para cada 
VARIABLE DE CLASE.
• TODOS los objetos 
COMPARTEN la misma 
Variables
Un METODO de CLASE es un 
Método que a la clase como 
un todo, no a un objeto en 
particular. 
Ing. Marcelo Parisholon sw
 
Clases - Reusabilidad
OBJETOS proveen los beneficios de 
Modularidad y Ocultamiento de Información.
CLASES proveen los beneficios de 
REUSABILIDAD
El lenguaje JAVA va acompañado de CLASES 
de propósitos varios que permiten al 
Programador REUTILIZAR fácilmente código 
de la plataforma JAVA (J2EE,J2SE,J2ME..)
Ing. Marcelo Parisholon sw
 
Que es la Herencia?
Es un MECANISMO que permite DEFINIR una clase en términos de otra clase. 
• SUPERClase
• SUBClase
• JERARQUIA de Clases
SUBClase hereda la 
DEFINICION de los 
atributos y métodos de la 
SUPERClase
Expresan Relaciones entre 
Clases del tipo “es un”.
Ing. Marcelo Parisholon sw
 
Herencia - Especialización
La SUBClase puede agregar NUEVOS Atributos y 
Métodos PROPIOS.
La SUBClase puede SOBREESCRIBIR Métodos 
heredados para proveer un Comportamiento 
más especializado.
Ing. Marcelo Parisholon sw
 
Herencia – Clase OBJECT
La clase superior a todas las clases en Java se 
denomina ‘Object’.
Todas las clases heredan DIRECTA o 
INDIRECTAMENTE de la clase Object.
Una variable del tipo “Object” puede contener 
cualquier una referencia a cualquier Objeto.
‘Object’ provee comportamientos que son 
compartidos por todos los objetos que estan 
corriendo sobre una ‘Java Virtual Machine’ ( ej. 
toString()).
Ing. Marcelo Parisholon sw
 
Herencia – Beneficios
• ESPECIALIZACION: Proveer comportamiento 
especializado a partir de los elementos comunes 
ofrecidos por la Superclase. 
• REUTILIZACION: acceder a metodos 
implementados en la SuperClase.
• Es posible definir clases ABSTRACTAS que 
definen una clase parcialmente y delega a las 
SUBCLASES la implementacion por el 
programador.
Ing. Marcelo Parisholon sw
 
Que es una Interface?
• Es un Tipo de Dato (idem Clase) que...
• Define Métodos (idem Clase) que...
• No se implementan (diferencia Clase).
• Una clase que implementa una Interface es la 
encargada de implementar todos los métodos 
definidos por esta.
• Una clase puede implementar varias interfaces
Ing. Marcelo Parisholon sw
 
Interface - Herencia
• La herencia describe Clases en relación a su 
naturaleza (“es un..”).
• La Interface ayuda a describir una Clase en 
terminos de comportamiento (“como se 
comporta en relacion a otras clases”).
• Cuando una clase implementa una interface esta 
aceptando comportarse de una determinada 
manera (métodos).
Ing. Marcelo Parisholon sw
 
Interface - Beneficios
• Representar similitudes entre clases no 
relacionadas sin forzar Herencias Artificiales.
• Utiles para Declarar métodos que deben ser 
implementados.
• Relevar definición de la interface de 
programacion del objeto sin indicar la clase.
• Modelar la herencia múltiple.
Ing. Marcelo Parisholon sw
 
Bibliografía
• Lesson: Object-Oriented Programming Concepts: 
http://java.sun.com/docs/books/tutorial/java/concepts/index
.html
• JAVA 2 , HORSTMANN , Isbn 8420537004 : Cap.4. 
Objetos y clases 
Ing. Marcelo Parisholon sw

Continuar navegando