Descarga la aplicación para disfrutar aún más
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
Compartir