Programación en Java. Programación en OO



Documentos relacionados
Programación Orientada a Objetos con Java

Universidad de Cantabria

Curso de Java POO: Programación orientada a objetos

Programación Orientada a Objetos en Java

2.2.- Paradigmas de la POO

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

Clases abstractas e interfaces

PHP y MySQL. Inicio: - Herencia - Palabra clave Final - Polimorfismo - Type Hinting - Abstracción de clases

Introducción a la Programación Orientada a Objetos

Java Inicial (20 horas)

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Repaso de las características más importantes de la programación Java y su adaptación a Android

Lenguajes de Programación Curso Práctica 4. Herencia. Utilización de interfaces y clases abstractas. 1. Interfaces Clases abstractas 2

Tema 2. El lenguaje de programación Java (Parte 1)

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Java: Clases Abstractas e Interfaces

Modelo de Objetos Distribuidos

Constructores y Destructores

Programación orientada a objetos

1. Qué tipos de relación hay entre las siguientes clases?

Programación Orientada a Objetos en Java

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases

POLIMORFISMO "una interfaz, múltiples métodos".

Prácticas de Programación

Notación UML para modelado Orientado a Objetos

Introducción a la programación orientada a objetos

Prof. Dr. Paul Bustamante

Curso de Python Inicial

Programación Orientada a Objetos en C#.NET CAPÍTULO 5 H E R E N C I A. Ing. Bruno López Takeyas, M.C.

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Java en 2 horas. Rodrigo Santamaría

Tema 3: Genericidad en Java. Tema 3: Genericidad en Java. Objetivos y Bibliografía. Modelos de Datos Genéricos

Oracle 12c DISEÑO Y PROGRAMACIÓN

Patrones para persistencia (I) Ingeniería del Software II

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype

Estructura de las Aplicaciones Orientadas a Objetos Herencia y Polimorfismo

Herencia e Interfaces

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Escuela Politécnica Nacional I. Bernal. Iván Bernal, Ph.D. 4

Clases y Objetos. Informática II Ingeniería Electrónica

Arquitectura y Lenguaje Java

MODULO DE PROGRAMACION JAVA Nivel Básico-Intermedio

El lenguaje de programación Java

Práctica 2: Java Remote Method Invocation (RMI)

PROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas

Uso de excepciones en Java

Introducción al lenguaje JAVA

Objetos y Clases en Java. ELO 329: Diseño y Programación Orientados a Objetos

FRAMEWORK 2 Recepción de SMS

Ingeniería del Software Arquitectura Física en 3 niveles

Tema 1. Introducción a los TAD

GESTIÓN DE REDES PARTE III

Pruebas de unidad con JUnit

Clases y funciones amigas: friend

POO en Java IV: Herencia (Parte 1)

1

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Convirtiendo arboles de expresión lambda en diferentes strings.

Clases. Java: Clases y Objetos. Clases. Clases. Modificadores de clase. Definición de una clase. Cada objeto es un ejemplar de una clase

GESTOR DE LICENCIAS Ayuda

Historial de Versiones: Velneo vversion. Funcionamiento. Repositorio de versiones. Funcionalidades del Historial de Versiones. Bloquear.

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Tema: Herencia Simple y Múltiple en C++.

INDICE Uso de la composición (I). Preservación de la ocultación Utilización de miembros heredados (I). Atributos...

15. Parámetros o argumentos

CONTENIDOS. 1. Completar el ejemplo de Herencia: Superclase Persona-Subclase Alumno

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

Introducción a Java LSUB. 15 de enero de 2015 GSYC

Relaciones entre clases: Diagramas de clases UML

Primera Escuela de la Red Temática SVO. Madrid, Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Java RMI. Sistemas Distribuidos Rodrigo Santamaría

ATLAS MANUAL DE USUARIO ARBOL ACCESIBLE

LENGUAJES DE CONSULTA ORIENTADOS A OBJETOS

ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO

Programación Orientada a Objetos. Java: Excepciones

Práctica 4: Herencia. Objetivos:

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

Diseño orientado a los objetos

Java en 3 horas. Ampliación de Sistemas Operativos. Rodrigo Santamaría

Ejercicios - Persistencia en Android: ficheros y SQLite

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

Sistema Ventanilla Manual Solicitud Compra DIMERC

COMUNICADO Nº 1 CONSULTAS LICITACION ABREVIADA AMPLIADA 03/2014 EXP /2013 PREGUNTAS DE LOS INTERESADOS EN EL LLAMADO

Curso de programación Java III Artículo publicado originalmente en la revista Sólo Programadores

Contenidos. Funciones (suplemento) Funciones. Justificación del uso de Funciones

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

ELO329: Diseño y Programación Orientados a Objetos 20 de Junio de Certamen Final

19. Packages o paquetes

Benemérita Universidad Autónoma del Estado de Puebla

Objetos y Clases en Java. ELO-329: Diseño y Programación Orientados a Objetos

Partes de un programa en Java. A. Ejemplo de un Programa en Java /* Programa Ejemplo de Java: Muestra una Ventana Archivo: Ejemplo1.

CONCEPTOS FUNDAMENTALES DE LA ORIENTACION A OBJETOS

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Manual del Protocolo XML-RPC de Mensajería Negocios

MONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

Monografía RECINTOS SEGUROS v4.2

Transcripción:

Programación en OO

Lección 4:Programación en OO 1. Herencia 2. Modificadores de Acceso 3. Interfaces

Herencia Es la acción en la que una clase obtiene los métodos y propiedades definidos en otra clase, siempre y cuando no seán privados. Para heredar en java se utiliza la clase reservada extends. Ejemplo: public class SubClases extends SuperClase {}

Herencia A la clase que extiendo se le denomina subclase o clase hija. La clase de la que se extiende se le denomina superclase o clase padre. Ejemplo: class PersonaDAO extends ConexionBaseDatos {} Superclase: ConexiónBaseDatos Subclase: PersonaDAO

Modificadores de acceso Los modificadores de acceso son: public protected private default (sin modificador)

Modificadores de acceso public: Una clase, variable o método puede ser utilizado en cualquier programa de java sin ninguna restricción. private: El más restrictivo de los modificadores. Una variable o método puede ser utilizado sólo por una instacia de la clase

Modificador de acceso protected: Se le asigna a las variables o métodos que sólo pueden ser accedidos por la clase que los contiene o sus subclases.

Modificadores de acceso default: Es el modificador de acceso que se asigna al no definirle un modificador de acceso. Default, no es una palabra reservada, simplemente es el nombre que se le asigna a la acción que resulta de no especificar un modificador de acceso. Este modificar sólo permite el acceso a clases que se encuentren en el mismo paquete.

Constructores en una subclase Como hemos visto al heredar se obtienen los métodos y variables de la clase padre, pero también se tiene acceso a sus constructores. Para acceder a los constructores de la clase padre se utiliza la palabra reservada super, seguida de los argumentos que requiere el constructor de la clase padre.

Constructores en una subclase La instrucción con la palabra reservada super, debe ser la primera en el cuerpo del constructor. El constructor de la superclase debe ser visible El constructor de la superclase debe ser visible para la subclase es decir debe ser public, protegido y o estar en el mismo paquete, por ningún motivo se puede acceder un constructor privado de la clase hija.

Constructores en una subclase Ejemplo: public class Transaccion extends ControladorConexion implements Conexion { public Transaccion() throws SQLException { super(); } } public Transaccion(int controlador) throws SQLException { super(controlador); }

Heredando y redefiniendo miembros Al igual que con los constructores se tiene acceso a todas las propiedades y métodos que sean accesibles por la subclase, esto es considerando los modificadores de acceso.

Heredando y redefiniendo miembros Ejemplo: public class ControladorConexion { protected Connection sqlconnection; public Connection getconexion() throws ImposibleCrearConexionException {..} } public class Transaccion extends ControladorConexion { //Contiene la variable slqconnection public void commit() throws SQLException{} //Cuenta además con el método getconexion() }

Accediendo miembros heredados Para acceder a los miembros heredados sólo basta con utilizar el nombre de la variable o método.

Sobre escritura de métodos Al igual que lo sobrecarga la sobre escritura es una característica de Java. Utilizar el mismo nombre de método con su Utilizar el mismo nombre de método con su conjunto de argumentos iguales y mismo tipo de retorno se conoce como sobre escritura.

Sobre escritura de métodos La sobre escritura existe cuando: En una subclase se define un método con el mismo nombre, una lista de argumentos idéntica en orden y tipo y con el mismo tipo de retorno, que un método de la superclase. Los métodos marcados con final no pueden ser sobre escritos.

Sobre escritura de métodos La accesibilidad no debe ser más restrictiva que en el método original. El método no debe lanzar ninguna excepción comprobada (o subclases de esas excepciones) que no hayan sido declaradas por los métodos sobre escritos.

La palabra reservada super La palabra reservada super tiene como objetivos: Acceder a las variables ocultas de la superclase super.variableoculta; Acceder a los métodos sobre escritos de la clase padre. super.metodosobreescrito(); Invocar a los constructores de la superclase super(agumentos);

Interfaces Define un conjunto de variables de clase y métodos que especifican sólo la firma de los métodos que debe contener la clase que la implementa. Para definir una interfaz se utiliza la palabra reservada interface. Las interfaces son abstractas implícitamente. Por convención el abstract se omite

Interfaces En una interfaz se pueden declarar tres tipos de miembros Constantes (fields) Métodos Clases internas o interfases

Interfaces - Constantes En una interfaz se pueden declarar constantes, por lo cual los campos (fields) deben serán implícitamente publicas, estáticas y finales. Por convención los modificadores son omitidos en la declaración de los campos. Deben ser inicializadas, ya que variables finales en blanco no son permitidas

Interfaces - Constantes Ejemplo: public interface PerfilDeSeguridad { /** * Tipo de autenticación por base de datos */ String TIPO_BASE_DE_DATOS = seguridad.validacionbd ; } /** * Tipo de autenticación por base de datos */ String TIPO_EMAIL = seguridad.validacionemail ;

Interfaces - Métodos Las interfaces definen la forma de los métodos, pero existen algunas reglas que deben seguirse. Los métodos son abstractos implícitamente, no pueden tener cuerpo. Por convención el abstract se omite en la declaración del método Son públicos implícitamente No se permite ningún otro modificador

Interfaces - Métodos Ejemplo: /** * La interfaz conexión permite tener un método * común en el uso de JDBC * @author ITNova Solutions */ public interface Conexion { /** Este metodo se encarga de obtener una nueva conexión. * @throws java.sql.sqlexception * @return Conexión a la base de datos */ Connection abrirconexion() throws SQLException; } /** Cierra la conexion existente * @throws java.sql.sqlexception */ void cerrarconexion() throws SQLException;

Implementando interfaces Para implementar una interfaz en la declaración de la clase se utiliza la palabra reservada implements, seguida por la lista de interfaces que deseamos implementar. Al implementar una interfaz estamos forzados a implementar todos los métodos que defina.

Implementando interfaces Ejemplo: class ControladorConexion implements Conexión { /** Constructor de la clase */ public ControladorConexion(){ this.seleccionarcontrolador(); } } Connection abrirconexion() throws SQLException { //Implementación del método } void cerrarconexion() throws SQLException { //Implementación del método }

Utilizando interfaces El diseño orientado a interfaces nos permite mantener la abstracción del sistema e implementar su funcionamiento de diferentes maneras.

Uso de interfaces Consideremos el siguiente escenario:

Uso de interfaces Una de las posibles implementaciones de la clase persona: class PersonaDAO { private Conexion conexion; /** Constructor de la clase */ public PersonaDAO(){ //En caso de utilizar Oracle //conexion = new OracleConecion(); conexion = new MySQLConecion(); Connection c = conexion.abrirconexion(); //Implementación del constructor } }

Compatibilidad y tipos de conversión En Java existen dos formas de tener cambios en referencias: Las implícitas o automáticas que son conocidas como conversiones. Las explicitas son hechas a través de un Cast.

Conversion La conversión es permitida cuando es de abajo hacia arriba. Correcto: Tangelo tange = new Tangelo(); Citrus cit = tange; Incorrecto: Citrus cit = new Citrus(); Tangelo tange = cit; //

Cast El Cast es necesario cuando es de arriba hacia abajo. Ejemplo: GrapeFruit g, g1; Citrus c; Tangelo t; g = new GrapeFruit(); c = g; //Conversión //Casting correcto g1 = (GrapeFruit)c; //Casting no permitido t = (Tangelo)t;