Orientación a Objetos en Java
|
|
|
- Celia Gil Maldonado
- hace 9 años
- Vistas:
Transcripción
1 Programación de sistemas Orientación a Objetos en Java I. Programación Basada en objetos II. Programación orientada a objetos Ingeniería Telemática M. Carmen Fernández Panadero <[email protected]> [email protected]
2 Escenario IV: Declarar e implementar una clase Ahora que ya sabes interpretar código e implementar tus propios métodos te encargan el diseño de una clase completa para crear un nuevo tipo de datos con sus características y comportamiento. Objetivo: Ser capaz de declarar una clase con un conjunto de características (atributos) y comportamientos (métodos) Ser capaz de crear objetos de una clase dada y modificar o restringir el acceso a su estado y su comportamiento Plan de trabajo: Memorizar la nomenclatura básica de la programación orientada a objetos Practicar el modelado de objetos con ejemplos sencillos para distinguir entre una clase, un objeto, su estado y su comportamiento Repasar la sintaxis java para declarar clases atributos, constructores y métodos Recordar el mecanismo y la sintaxis para paso de mensajes entre objetos [email protected] 2010 Repaso 2
3 Contenidos Clases y objetos Encapsulación de objetos Abstracción funcional Abstracción de datos Miembros de una clase (atributos y métodos) Paso de mensajes [email protected]
4 Objetivos Definir los conceptos básicos de la programación basada en objetos Clases, objetos Miembros (variables, métodos) Abstracción y ocultación de información Describir relación entre objeto y clase Crear un objeto sencillo y modelar sus atributos (por medio de variables) su comportamiento (por medio de métodos) [email protected]
5 Qué es un objeto? Los objetos son representaciones (simples/complejas) (reales/imaginarias) de cosas: reloj, avión empleado, etc. No todo puede ser considerado como un objeto, algunas cosas son simplemente características o atributos de los objetos: color, velocidad, etc. Cdk, [email protected]
6 Qué es un objeto? Abstracción funcional Hay cosas que sabemos que los coches hacen pero no como lo hacen: avanzar parar girar a la dcha girar a la izda Abstracción de datos Un coche tiene además ciertos atributos: color velocidad tamaño etc.. La forma en que se definen los atributos no tiene importancia para el diseño Cdk, [email protected]
7 Qué es un objeto? Es una forma de agrupar un conjunto de datos (estado) y de funcionalidad (comportamiento) en un mismo bloque de código que luego puede ser referenciado desde otras partes de un programa La clase a la que pertenece el objeto puede considerarse como un nuevo tipo de datos. [email protected]
8 Encapsulación de objetos Encapsulación: describe la vinculación de un comportamiento y un estado a un objeto en particular. Ocultación de información: Permite definir qué partes del objeto son visibles (el interfaz público) que partes son ocultas (privadas) La llave de contacto es un interfaz público del mecanimo de arranque de un coche La implementación de cómo arranca realmente es privada y sobre ella sólo puede actuar la llave de contacto El objeto puede cambiar y su interfaz público ser compatible con el original esto facilita reutilización de código Cdk, [email protected]
9 Encapsulación de objetos Un objeto tiene MIEMBROS DE UNA CLASE Los objetos encapsulan atributos permitiendo acceso a ellas únicamente a través de los métodos Atributos (Variables): Contenedores de valores Métodos: Contenedores de funciones Estado: representado por el contenido de sus atributos Comportamiento: definido por sus métodos Normalmente: Los métodos son públicos Los atributos son privados Puede haber métodos privados Es peligroso tener atributos públicos Cdk, [email protected]
10 Definición de objetos Miembros públicos los miembros públicos (describen qué puede hacer los objetos de esa clase) Qué puede hacer el objeto (métodos) Qué es el objeto (su abstracción) Miembros privados describen la implementación de cómo lo hace. Ejemplo el objeto contacto interacciona con el circuito electrico del vehículo, este con el motor, etc. En sistemas orientados a objetos puros todo el estado es privado y sólo se puede cambiar a través del interfaz público. Ej: el método público frenar puede cambiar el valor del atributo privado velocidad. Cdk, [email protected]
11 Interacciones entre objetos El modelado de objetos modela: los objetos y sus interrelaciones Para realizar su tarea el objeto puede delegar trabajos en otro que puede ser parte de él mismo o de cualquier otro objeto del sistema. Los objetos interaccionan entre sí enviándose mensajes [email protected]
12 Paso de Mensajes Arrancar Interfaz Público Implementación Un objeto envía un mensaje a otro Esto lo hace mediante una llamada a sus atributos o métodos Los mensajes son tratados por la interfaz pública del objeto que los recibe Eso quiere decir que sólo podemos hacer llamadas a aquellos atributos o métodos de otro objeto que sean públicos o accesibles desde el objeto que hace la llamada El objeto receptor reaccionará Cambiando su estado (es decir modificando sus atributos) Enviando otros mensajes (es decir llamando a otros atributos o métodos del mismo objeto (públicos o privados) o de otros objetos (públicos o accesibles desde ese objeto)) Cdk, [email protected]
13 Clasificación de objetos Clase: Conjunto de objetos con estados y comportamientos similares Podemos referirnos a la clase Coche (cualquier instancia de la clasificación coche) Mi coche es un objeto, es decir una instancia particular de la clase coche La clasificación depende del problema a resolver Cdk, [email protected]
14 Objetos vs. Clases Una clase es una entidad abstracta Es un tipo de clasificación de datos Define el comportamiento y atributos de un grupo de estructura y comportamiento similar Clase coche Métodos: arrancar, avanzar, parar,... Atributos: color, velocidad, etc. Nombre de la clase Métodos (funciones) Atributos (datos) Un objeto es una instancia de una clase Un objeto se distingue de otros miembros de la clase por sus atributos Objeto Ferrari Perteneciente a la clase coche Nombre: Ferrari Métodos: arrancar, avanzar, parar,... Atributos: color = rojo ; velocidad 300Km/h Una clase se declara, un objeto además se crea Cdk, [email protected]
15 Programación de sistemas Orientación a Objetos en Java I. Programación Basada en objetos II. Programación orientada a objetos Ingeniería Telemática M. Carmen Fernández Panadero <[email protected]> [email protected]
16 Escenario V: Reutilizar código. Herencia Una vez que eres capaz de crear tus propias clases estás preparado para trabajar en equipo y reutilizar código de tus compañeros. Tu equipo te proporciona un conjunto de clases y te pide que crees especializaciones o generalizaciones de las mismas Objetivo: Ser capaz de crear una clase derivada añadiendo algunas características (atributos) y comportamiento (métodos) a una clase existente. Ser capaz de extraer todo el código común de un conjunto de clases similares para agruparlo en una nueva clase padre para que sea más fácil de mantener. Ser capaz de crear objetos, y referenciar y acceder a sus atributos y métodos dependiendo de su posición en la jerarquía de herencia y sus modificadores Plan de trabajo: Memorizar la nomenclatura relacionada con herencia Memorizar la sintaxis de java relacionada con la herencia (extends) y con la referencia (super, this) y acceso (modificadores) a los distintos miembros Conocer mecanismos básicos de herencia como ocultación de atributos, sobreescritura de métodos y sobrecarga de constructores y saber para qué sirven y cómo se usan [email protected] 2010 Repaso 16
17 Contenidos Conceptos básicos de herencia Jerarquía de herencia ReescrituraI: Ocultación de atributos ReescrituraII: Redefinición de métodos Sobrecarga de métodos Constructores de clases derivadas Los modificadores static y final Ámbitos y acceso [email protected]
18 Herencia Qué es? Para qué sirve? Es un mecanismo para la reutilización de software Permite definir a partir de una clase otras clases relacionadas que supongan una: Especialización de la clase dada.(ej la clase Coche es una especialización de la clase Vehículo) Escenario: Tenemos que desarrollar una nueva clase que se parece mucho a una que ya tenemos pero necesita información (características y comportamiento) adicional. Solución: Creamos una clase derivada de la antigua y añadimos nueva funcionalidad sin tener que reescribir el código común Generalización de la clase dada.(la clase vehículo es una generalización de la clase coche). Escenario: Tenemos un conjunto numeroso de clases muy similares con código que se repite y es difícil de actualizar y mantener (ejemplo hay que añadir una letra al número de serie) Solución: Movemos el código que se repite a un único sitio (la clase padre) [email protected]
19 Herencia Para qué sirve? Recurso nombre descripcion decirnombre() decirdescripcion() Recurso nombre descripcion decirnombre() decirdescripcion() Aula Ordenador Aula Ordenador nombre nombre localizacion descripcion descripcion decirlocalizacion() localizacion sistemaoperativo decirnombre() decirnombre() decirdescripcion() decirdescripcion() decirlocalizacion() decirsistemaop() sistemaoperativo decirsistemaop() public class Aula extends Recurso public class Ordenador extends Recurso Los atributos y métodos que aparecen en azul en la clase padre se repiten en las clases hijas. (Dibujo izda) No es necesario repetir el código, basta con decir que una clase extiende a la otra o hereda de ella. (Dibujo dcha) [email protected]
20 Herencia Nomenclatura Si definimos la clase coche a partir de la clase vehículo se dice que: "coche" hereda las variables y métodos de "vehiculo" "coche" extiende de "vehiculo" "coche" es subclase de "vehiculo" clase derivada clase hija "vehiculo" es superclase de "coche" clase base clase padre La herencia realiza la relación es-un Un coche es-un vehículo; un perro es-un mamífero, etc. [email protected]
21 Herencia Declaración de clases derivadas La sintaxis para declarar clases derivadas es: class ClaseDerivada extends ClaseBase {... } Alumno Persona Empleado class Persona {... } class Alumno extends Persona {... } class Empleado extends Persona {... } class Profesor extends Empleado {... } class Bedel extends Empleado {... } Profesor Bedel Nati, [email protected]
22 Herencia Clase derivada Atributos Métodos nombre imprime apellidos anyonacimiento Heredados de la clase Persona grupo horario pongrupo imprimegrupo Clase Alumno Nati,
23 Herencia Cómo se usa? Ej.: Persona.java public class Persona { protected String nombre; protected String apellidos; protected int anyonacimiento; public Persona () { } public Persona (String nombre, String apellidos, int anyonacimiento){ this.nombre = nombre; this.apellidos = apellidos; this.anyonacimiento = anyonacimiento; } public void imprime(){ System.out.print("Datos Personales: " + nombre + " " + apellidos + " ( + anyonacimiento + ")"); } } Nati, [email protected]
24 Herencia Cómo se usa? Ej.: Alumno.java public class Alumno extends Persona { protected String grupo; protected char horario; public Alumno() { } } public Alumno (String nombre, String apellidos, int anyonacimiento) { super(nombre, apellidos, anyonacimiento); } public void pongrupo(string grupo, char horario) throws Exception { if (grupo == null grupo.length() == 0) throw new Exception ("Grupo no válido"); if (horario!= 'M' && horario!= 'T') throw new Exception ("Horario no válido"); } this.grupo = grupo; this.horario = horario; public void imprimegrupo(){ System.out.print(" Grupo " + grupo + horario); } Nati, [email protected]
25 Herencia Cómo se usa? Ej.: Prueba.java public class Prueba { public static void main (String[] args) throws Exception{ Persona vecina = new Persona ("Luisa", "Asenjo Martínez", 1978); Alumno unalumno = new Alumno ("Juan", "Ugarte López", 1985); unalumno.pongrupo("66", 'M'); vecina.imprime(); System.out.println(); } } unalumno.imprime(); unalumno.imprimegrupo(); Nati, [email protected]
26 Herencia Consecuencias de la extensión de clases Herencia de la interfaz La parte pública de la clase derivada contiene la parte pública de la clase base La clase Alumno contiene el método imprime() Herencia de la implementación La implementación de la clase derivada contiene la de la clase base Al invocar los métodos de la clase base sobre el objeto de la clase derivada (unalumno.imprime()) se produce el comportamiento esperado Nati,
27 Herencia Jerarquía de herencia en Java En Java, todas las clases están relacionadas en una única jerarquía de herencia Una clase puede: heredar explícitamente de otra clase o bien heredar implícitamente de la clase Object (definida en el núcleo de Java) Esto se cumple tanto para las clases predefinidas como para las clases definidas por el usuario [email protected]
28 Herencia Jerarquía de herencia en Java Object Boolean Character Number Persona Integer Long Float Double Alumno Empleado Bedel Profesor
29 Herencia Reescritura Modificación de los elementos de la clase base dentro de la clase derivada La clase derivada puede definir: Un atributo con el mismo nombre que uno de la clase base Ocultación de atributos Un método con la misma signatura que uno de la clase base Redefinición de métodos Lo más usual cuando se produce reescritura es que se reescriba un método Nati,
30 Reescritura I (Shadowing) Ocultación de atributos clase "Abuela" Transporte String nombre = "terrestre" clase padre convoy vehiculo String nombre = "turismo" clase hija moto coche String nombre = "Ferrari" Cómo acceder a variables ocultas? nombre (nombre del coche) this.nombre (nombre del coche) super.nombre (nombre del vehículo) ((vehiculo)this).nombre (nombre del vehículo) super.super.nombre (Mal) ((transporte)this).nombre (nombre del transporte) variables clase hija: visibles Variables clases padre ocultas [email protected]
31 Reescritura I (Shadowing) Ocultación de atributos Atributos Métodos Alumno a = new Alumno(...); System.out.println(a.nombre); nombre apellidos anyonacimiento imprime() Persona p = a; System.out.println(p.nombre); Heredados de la clase Persona nombre grupo pongrupo(string s) imprimegrupo() horario Clase Alumno [email protected]
32 Reescritura I (Shadowing) Ocultación de atributos Cuando se accede a un atributo, se usa el tipo de la referencia para decidir a qué valor se accede El atributo en la subclase tiene que tener el mismo nombre que en la superclase Pero no necesariamente el mismo tipo No tiene mucha aplicación práctica Permite a las superclases definir nuevos atributos sin afectar a las subclases [email protected]
33 Reescritura I (Shadowing) Ocultación de atributos. Ejemplo class SuperShow { public String str = "SuperStr"; } class ExtendShow extends SuperShow { public int str = 7; } { class Show { public static void main (String[] args) } } ExtendShow ext = new ExtendShow(); SuperShow sup = ext; Imprime SuperStr System.out.println(sup.str); System.out.println(ext.str); Imprime 7 Nati, [email protected]
34 Reescritura I (Shadowing) Ocultación de atributos Si definimos en una subclase una variable del mismo nombre y tipo que en la superclase, la de la superclase queda oculta. Podemos acceder a la variable de la subclase o de la superclase utilizando this y super. Ej: "coche" extiende de "vehiculo" y "vehiculo" extiende de transporte. Definimos en las tres clases la variable String nombre. Cómo sabemos si nos estamos refiriendo al nombre del transporte, al nombre del vehiculo o al nombre del coche? [email protected]
35 Reescritura II (Overriding) Redefinición de métodos. Qué es? Si definimos en una subclase un método con la misma signatura (nombre + tipo y número de parámetros) que en la superclase el de la superclase queda oculto. Si ponemos el modificador final a un método no lo podemos redefinir. Cómo acceder a métodos ocultos?: arrancar() (ejecuta el método arrancar del coche) this.arrancar() (ejecuta el método arrancar del coche) super.arrancar() ( método arrancar del vehículo) super.super.nombre (Mal) métodos clase hija: visibles métodos clases padre: ocultos [email protected]
36 Reescritura II (Overriding) Redefinición de métodos Para qué sirve? Recurso nombre descripcion decirnombre() decirdescripcion() Recurso nombre descripcion decirnombre() decirdescripcion() Aula nombre descripcion localizacion decirnombre() decirdescripcion() decirlocalizacion() Ordenador nombre descripcion sistemaoperativo decirnombre() decirdescripcion() decirsistemaop() Aula descripcion localizacion decirlocalizacion() decirdescripcion() Ordenador sistemaoperativo decirsistemaop() this.decirdescripcion() public class Aula extends Recurso super.decirdescripcion() public class Ordenador extends Recurso
37 Reescritura II (Overriding) Redefinición de métodos Object error no metodo(parametros)? no Otro ancestro metodo(parametros)? no Superclase metodo(parametros)? mensaje objeto instancia Subclase no metodo(parametros)? metodo(parametros) Nati,
38 Reescritura II (Overriding) Redefinición de métodos Al mandar un mensaje a un objeto, el método seleccionado: Depende de la clase real de la que el objeto es una instancia No de la clase de referencia a la que esté asignado, como en el caso de los atributos Nati,
39 Reescritura II (Overriding) Redefinición de métodos. Ejemplo class SuperShow { public String str = "SuperStr"; public void show() { System.out.println("Super.show: " + str); } } class ExtendShow extends SuperShow { public String str = "ExtendStr"; public void show() { System.out.println("Extend.show: " + str); } } class Show2 { public static void main (String[] args) { ExtendShow ext = new ExtendShow(); SuperShow sup = ext; sup.show(); ext.show(); } } Ambas imprimen: Extend.show: ExtendStr Nati, [email protected]
40 Reescritura II (Overriding) Métodos finales La reescritura de métodos es útil para Ampliar la funcionalidad de un método Particularizar la funcionalidad de un método a la clase derivada Si no se quiere que las clases derivadas sean capaces de modificar un método o un atributo de la clase base, se añade a ese método o atributo la palabra reservada final [email protected]
41 Referencias this y super this referencia al objeto de la clase actual super referencia al objeto actual como si fuera una instancia de su superclase A través de la referencia a super se puede acceder explícitamente a métodos de la clase base Para reescribir métodos, puede ser útil usar la referencia a super public class Alumno extends Persona { // el resto permanence igual public void imprime(){ super.imprime(); System.out.print(" Grupo " + grupo + horario); } } Nati, [email protected]
42 Sobrecarga (Overloading) Qué es? Podemos definir una clase con dos métodos con el mismo nombre si los argumentos son distintos. Se utiliza mucho para los constructores. Sabemos cual de los dos métodos tenemos que ejecutar por los parámetros que le pasamos cuando le llamamos. En este caso no hay ocultación de la información, se puede acceder a los dos métodos. [email protected]
43 Sobrecarga (Overloading) Para qué sirve? Aula nombre descripcion localizacion decirnombre() decirdescripcion() decirdescripcion(string mobiliario) decirlocalizacion() Son dos métodos distintos porque aunque tengan el mismo nombre tienen distintos argumentos Tienen distinta funcionalidad como ocurre en el caso que se muestra en el ejemplo describe el aula en general describe el mueble que se encuentra en el aula y que le pasamos como parámetro [email protected]
44 Reescritura vs. sobrecarga Reescritura: La subclase sustituye la implementación de un método de la superclase Ambos métodos tienen que tener la misma signatura Sobrecarga: Existe más de un método con el mismo nombre pero distinta signatura Los métodos sobrecargados pueden definirse en la misma clase o en distintas clases de la jerarquía de herencia nati, [email protected]
45 Constructores Notas a recordar Cuando se crea un objeto sus miembros se inicializan con un método constructor Los constructores: llevan el mismo nombre que la clase No tienen tipo de resultado (ni siquiera void) Conviene que haya al menos 1 constructor Pueden existir varios que se distinguirán por los parámetros que aceptan (sobrecarga) Si no existen se crea un constructor por defecto sin parámetros que inicializa las variables a su valor por defecto. Si la clase tiene algún constructor, el constructor por defecto deja de existir. En ese caso, si queremos que haya un constructor sin parámetros tendremos que declararlo explícitamente. [email protected]
46 Constructores y herencia Para la creación de un objeto se siguen los siguientes pasos: 1. Se crea su parte base 2. Se añade su parte derivada Si la clase base del objeto hereda a su vez de otra, en el paso 1 se aplica el mismo orden de creación, hasta llegar a Object Por ejemplo, en la creación de un objeto Alumno que hereda de Persona, los pasos son: 1. Se crea la parte correspondiente a Persona. Para ello 1. Se crea la parte correspondiente a Object 2. Se añaden los elementos de Persona 2. Se añaden los elementos de Alumno [email protected]
47 Constructores y herencia En el constructor de la clase derivada se realiza siempre una llamada al constructor de la clase base Ésta es la primera acción del constructor (aparece en la primera línea) Hay dos posibilidades: No indicarlo explícitamente Indicarlo explícitamente (obligatoriamente en la primera línea) [email protected]
48 Constructores y herencia 1. Si no se indica explícitamente, Java inserta automáticamente una llamada a super() en la primera línea del constructor de la clase derivada public Alumno (String nombre, String apellidos, int anyonacimiento, String grupo, char horario) { // aquí inserta Java una llamada a super() this.nombre = nombre; this.apellidos = apellidos; this.anyonacimiento = anyonacimiento; this.grupo = grupo; this.horario = horario; } Nati, [email protected]
49 Constructores y herencia 2. Indicándolo explícitamente } public Alumno (String nombre, String apellidos, int anyonacimiento, String grupo, char horario) { super(nombre, apellidos, anynacimiento); this.grupo = grupo; this.horario = horario; Nati, [email protected]
50 Modificadores y acceso Final El modificador final se puede aplicar a: Parámetros: Indica que dentro del método no podemos cambiar el valor de dicho parámetro public void mimetodo(final int p1, int p2){} //no podemos cambiar valor p1 Metodos: Indica que las clases que hereden de estas no pueden sobreescribir dicho método. public final void mymethod(){} //no podemos sobreescribir mymethod Clases: Impide la extensión de clases. No se puede heredar de ella public final class myclass(){} //no podemos extender myclass Nati, [email protected]
51 Modificadores y acceso Static (miembros estáticos) Modificador static Sólo existen una vez por clase, independientemente del número de instancias (objetos) de la clase que hayamos creado y aunque no exista ninguna. Se puede acceder a los miembros estáticos utilizando el nombre de la clase. Un método estático no puede acceder a miembros no estáticos directamente, tiene que crear primero un objeto [email protected]
52 Modificadores y acceso Static. Algunas reglas Los miembros estáticos se invocan con: NombreClase.metodoEstatico(); NombreClase.atributoEstatico; Para acceder a los miembros no estáticos necesitamos disponer de una instancia (objeto) de la clase NombreClase nombreobjeto = new NombreClase(); Los miembros no estáticos se invocan con: nombreobjeto.metodonormal(); nombreobjeto.atributonormal; Cuando invocación (llamada) a un miembro estático de la clase se realiza dentro de la propia clase se puede omitir el nombre de la misma. Es decir podemos escribir: metodoestatico(); atributoestatico; en lugar de: NombreClase.metodoEstatico(); NombreClase.atributoEstatico; [email protected]
53 MODIFICADORES clase metodo atributo public Accesible desde cualquier otra clase acceso otros (friendly) protected private abstract final static Accesible sólo desde clases de su propio paquete No se pueden instanciar Son para heredar de ellas Al menos 1 método abstracto No se puede heredar de ellas. Es la hoja en el árbol de herencia Accesible desde la clase y sus subclases Accesibles sólo dentro de la clase No tiene código Se implementa en las subclases o clases hijas No se puede ocultar Es cte y no puede ser modificado en las clases hijas No se puede cambiar su valor, es cte. Se suele utilizar en combinación con static Clase de nivel máximo. Es el mismo para todos Es la misma para todos los Se aplica a clases los objetos de la clase. objetos de la clase. copyright internas Java: Estructura Se utiliza: del lenguaje 53 [email protected] [email protected] 2010 NombreClase.metodo(); 53
Programación n de sistemas
Programación n de sistemas Orientación a Objetos en Java I. Programación Basada en objetos II. Programación orientada a objetos Ingeniería Telemática M. Carmen Fernández Panadero [email protected]
Introducción al Paradigma Orientado a Objetos
Introducción al Paradigma Orientado a Objetos 1 Objetos Qué es un objeto? Un objeto es un componente de software que contiene variables y métodos y que es usado para modelar algún aspecto de la vida real.
Derechos de Acceso: COMPOSICION
CLASES Una clase es un tipo definido por el usuario que describe los atributos y los métodos de los objetos que se crearan a partir de la misma. class nombre_clase cuerpo de la clase Derechos de Acceso:
Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Programación orientada a objetos
Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!
! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual [email protected]! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Programación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Taller de Programación I. Tema 10: Herencia en Java
INACAP Universidad Tecnológica de Chile Sede Santiago Centro Taller de Programación I Curso Java J2SE Tema 10: Herencia en Java Ing. Manuel López Ramos (versión 1) Parte I Qué es la herencia entre clases?
Curso de Java orientado a Android Parte 2
Curso de Java orientado a Android Parte 2 Introducción Java es un lenguaje de programación orientado a objetos (OOP). En este post cubriremos las características y principios básicos de la programación
Clases y herencia. FJP Unidad 8. Diseño de clases
Clases y herencia FJP Unidad 8 Encapsulamiento Diseño de clases El encapsulamiento provee protección de atributos y métodos definidos en una clase de forma tal que comportamiento de objetos de una clase
Introducción a OOP. Programación Orientada a Objeto
Introducción a OOP Programación Orientada a Objeto Evolución Programación no Estructurada, Programación procedimental, Programación modular y Programación orientada a objetos. Programación no Estructurada
FACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Herencia PRÁCTICA NÚM. [ 4 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje de Programación
10 -Herencia Y Polimorfismo. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
10 -Herencia Y Polimorfismo Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas Herencia Si se supone que somos buenos programando, cuando creemos una clase es posible que sea
Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
12. Tipos de atributos
Programación orientada a objetos con Java 135 12. Tipos de atributos Objetivos: a) Profundizar en el concepto de atributo de una clase e indicar los tipos de atributos en Java b) Interpretar el código
Definición. Mónica E. García García Feb 07
Tema 11: Herencia 0 Definición Cuando inicialmente se modelan dos cosas y se tienen datos duplicados y además pudiera darse que el número de métodos también es similar así como la implementación, se requiere
Fundamentos de Programación
Fundamentos de Programación Extensión de clases: herencia y polimorfismo 13.12.2010 José A. Mañas Dpto. de Ingeniería de Sistemas Telemá@cos hcp://www.lab.dit.upm.es/~fprg/ extensión
NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS
NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS Como se vio en teoría, la definición de una clase consta de dos partes fundamentales: 1 - La declaración de la clase: Indica el nombre de la clase precedido
Curso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra [email protected] Curso INEM. Programación en Java Marzo 2011 Índice Previo Repaso y encapsulación Empaquetado Relaciones entre clases Herencia
UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez
6 Herencia y Polimorfismo La Herencia y el Polimorfismo son dos de los principales mecanismos de programación que caracterizan a la programación orientada a objetos. La herencia sustenta su mecanismo en
Programación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual [email protected] Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B)
APRENDERAPROGRAMAR.COM CONCEPTO DE INTERFACE Y HERENCIA MÚLTIPLE EN JAVA. IMPLEMENTS. EJEMPLOS Y DIAGRAMAS DE CLASES. (CU00696B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha
Academia de computación de IE, ICA e ISISA. Unidad didáctica Programación Orientada a Objetos
Academia de computación de IE, ICA e ISISA Unidad didáctica Programación Orientada a Objetos Elaboración y diseño de cien reactivos de opción múltiple para la unidad didáctica programación orientada a
Edwin Andrés Cubillos Vega
PROGRAMACION ORIENTADA A OBJETOS Edwin Andrés Cubillos Vega Company LOGO Contenido Introducción Clases y Objetos Herencia Constructores y Destructores Polimorfismo Contenido Introducción Clases y Objetos
Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Examen Teórico Convocatoria de Junio de 2012
Examen Teórico Convocatoria de Junio de 2012 Nombre: DNI: Titulación: 1. Sobre el control de errores en Java: a) El siguiente método contiene un error de compilación debido al uso de excepciones. Explica
Aplicaciones de Escritorio
Aplicaciones de Escritorio Introducción n a la Programación Orientada a Objetos con Java Disertantes: Ing. Rasjido, Jose. AdeS Montenegro, Cristian. Agenda Clases y Paquetes. Clases y Paquetes. Modificadores
Modulo 11. Clases y Objetos en Java
El siguiente texto es una traducción no oficial del documento publicado por el grupo JEDI, Introduction to Programming 1, no pretende en ningún momento reemplazar los contenidos generados por este grupo.
Tema: Herencia en C#.
Programación II. Guía No. 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herencia en C#. Objetivos Crear clases a través de la herencia de clases existentes. Describir
16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz
168 A. García-Beltrán y J.M. Arranz 16. Herencia Objetivos: a) Definir el concepto de herencia entre clases b) Interpretar el código fuente de una aplicación Java donde aparecen clases relacionadas mediante
Programación Orientada a Objetos (POO)
Programación Orientada a Objetos (POO) Introducción La programación orientada a objetos es una técnica de programación en la cual expresamos el código en términos relacionados a como vemos las cosas en
Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Programación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Conceptos más avanzados de Programación Orientada a Objetos
Conceptos más avanzados de Programación Orientada a Objetos Programación 2008 Licenciatura de Lingüística y Nuevas Tecnologías Repaso: API de Java API = Application Programming Interface Una API describe
HERENCIA. Problema: Reparar el el coche. Jesús (Valencia) Luis, Mecánico (Valencia) Antonio, Servicio Técnico Ferrari (Madrid)
HERENCIA Lenguajes de Programación - Orientación a Objetos: Herencia 1 Problema: Reparar el el coche Jesús (Valencia) Reparar vehículo. Problema: no arranca Luis, Mecánico (Valencia) Método empleado Pedir
Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4
Trabajo Práctico Nº 4 Ejercicios Teóricos 1. Indique si las siguientes afirmaciones son verdaderas o falsas a. La programación orientada a objetos hace uso de clases y envío de mensajes entre objetos..
PROGRAMACIÓN ORIENTADA A OBJETOS 10/02/2009. Examen de Java. Nombre: DNI: Titulación:
Examen de Java Nombre: DNI: Titulación: 1. Cómo podemos compilar desde la línea de comandos la clase Java A que utiliza una librería empaquetada bd.jar? 2. Indica si es correcto el siguiente código. Justifica
PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas
PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas Instituto Tecnológico de Nuevo Laredo 1 Qué es UML? UML = Unified Modeling Language Un lenguaje de propósito general
Herencia Java y Servicios Web I Master en Ingeniería Matemática
Herencia Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) [email protected] Contenidos Extensión mediante herencia.
class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }
Programación Basada en Objetos Lectura 2 Clases en Java Definición class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) class Tiempo{
PROGRAMACION ORIENTADA A OBJETOS EN C++
PROGRAMACION ORIENTADA A OBJETOS EN C++ 1- INTRODUCCIÓN El lenguaje C++ representa el resultado de los esfuerzos realizados para proporcionar las ventajas de la programación Orientada a Objetos a un lenguaje
Introducción a Java. Introducción a Java. Programación I
Introducción a Java Introducción a Java Programación I Como Funciona Tipos de Datos TIPO TAMAÑO RANGO byte 8 bits Valores numéricos de 128 a 127 short 16 bits Valores numéricos de 32.768 a 32.767 int 32
Interfaces. Amparo López Gaona. Septiembre de Amparo López Gaona () Interfaces Septiembre de / 1
Interfaces Amparo López Gaona Septiembre de 2008 Amparo López Gaona () Interfaces Septiembre de 2008 1 / 1 Interfaces Las interfaces Java permiten al diseñador de clases establecer su forma definiendo
Herencia y Polimorfismo
Herencia y Polimorfismo Dra. Maricela Bravo Universidad Autónoma Metropolitana Unidad Azcapotzalco 1 Herencia en el mundo real Cosa Medio de telecomunicación Medio de transporte Coche Vehiculo aéreo Objeto
Programación orientada a objetos (I)
Programación orientada a objetos (I) Introducción a la POO La programación orientada a objetos es la penúltima evolución respecto a las metodologías de programación. En esta entrada veremos algunos de
3. LA HERENCIA. Necesidad de la herencia
página 1 3. LA HERENCIA Necesidad de la herencia La mente humana clasifica los conceptos de acuerdo a dos dimensiones: pertenencia y variedad. Se puede decir que el Ford Fiesta es un tipo de coche (variedad
Programación orientada a Objetos (POO) La POO está compuesta por una serie de elementos que se detallan a continuación.
Clase 3: 22/08/2016 Programación orientada a Objetos (POO) La POO está compuesta por una serie de elementos que se detallan a continuación. Clase Una clase es un modelo que se utiliza para crear objetos
Tema 2: Programación basada en Objetos
Tema 2: Programación basada en Objetos Programación Orientada a Objetos Marcos López Sanz Máster en Informática Gráfica, Juegos y Realidad Virtual Índice Objetivos Introducción Vista Pública Clases Objetos
Diseño Basado en Componentes. Curso 2008 / 09
Beneficios de OOP Diseño Basado en Componentes Ingeniería Informática Universidad Carlos III de Madrid Programación Orientada a Objetos (OOP) en VB.NET Diseño Basado en Componentes. Curso Conceptos orientados
HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS
Estructura de la Información en Programación I.T.I.G., Matemáticas. Curso 2009/2010 Nombre:... Fecha: / 11 / 2009 HOJA DE EJERCICIOS 3 HERENCIA ENTRE CLASES Y POLIMORFISMO DE MÉTODOS Esta hoja de ejercicios
Introducción y conceptos de POO
Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?
Clases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Clases Abstractas e Interfaces
Clases Abstractas e Interfaces Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Aprender a crear y utilizar clases y métodos abstractos
Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores
Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables
Las clases están compuestas por un conjunto de miembros. (datos y funciones) también se conocen como (atributos y métodos)
Clases y Objetos Las clases están compuestas por un conjunto de miembros (datos y funciones) también se conocen como (atributos y métodos) Una clase se usa como el modelo que deben seguir los objetos Un
18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Programación Orientada a Objetos Clases, métodos, atributos. Concepto de herencia, clases derivadas, tipos de herencia.
C3 Programación Orientada a Objetos Clases, métodos, atributos. Concepto de herencia, clases derivadas, tipos de herencia. Encapsulamiento y propiedades. Temas Clases y Objetos Herencia Clases derivadas
PRÁCTICA No 4 POO Encapsulación. El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos
Objetivos El alumno conocerá los principios de la encapsulación, y el uso de constructores para la inicialización de datos Introducción En esta práctica se abarcará el concepto de la encapsulación, así
Tema: Funciones Virtuales y Polimorfismo.
Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.
Tema: Funciones Virtuales y Polimorfismo.
Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar
Programación Orientada a Objetos en C# Unidad 4.- Polimorfismo
Programación Orientada a Objetos en C# Unidad 4.- Polimorfismo Autor: http://ramonroque.com/materias/pootec.htm [email protected] Colaborador: Ing. Bruno López Takeyas, M.C. www.itnuevolaredo.edu.mx/takeyas
Soluciones Ejercicios Tema 1
BonoMetro (I) 1 Soluciones Ejercicios Tema 1 Germán Moltó Martínez [email protected] Estructuras de Datos y Algoritmos Escuela Técnica Superior de Ingeniería Informática Universidad Politécnica de Valencia
Concurso: Cuánto sabes de JAVA?
Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos
INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA
Objetivo: Identificar los concentos principales en java POO, que es una clase, un objeto así como sus características principales abstracción, modularidad, encapsulamiento, herencia, polimorfismo. INTRODUCCIÓN
La Herencia. La primera línea de cada declaración debe incluir la sintaxis siguiente:
La Herencia Es la capacidad de compartir atributos y métodos entre clases. Es la propiedad que permite definir nuevas clases usando como base clases ya existentes. La nueva clase (clase derivada) hereda
Excepciones. Excepciones
Excepciones FJP Unidad 12 Excepciones Una excepción es la representación de una condición de error o cualquier situación no esperada en el resultado de un método. Son instancias de subclases de la clase
Introducción a la Programación Orientada a Objetos (POO)
Tema 8 Introducción a la Programación Orientada a Objetos (POO) Programación 2015-2016 Programación - Tema 8: Programación Orientada a Objetos (POO) 1 Tema 8. Prog. Orientada a Objetos Tipos abstractos
INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ
INICIACIÓN A LA PROGRAMACIÓN LENGUAJE JAVA con BlueJ Tema 3 Clases y Objetos Tema 4 Comunicación entre objetos. Algoritmos Tema 5 Herencia y abstracción de datos Tema 6 Diseño de clases TEMA 5: Herencia
Herencia en Java. Agustín J. González Diseño y Programación Orientados a Objetos
Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos 1 Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente,
Herencia y Clases Abstractas
Herencia y Clases Abstractas Reutilización de código y código genérico ELO329: Diseño y Programación Orientados a Objetos Introducción La idea básica es poder crear clases basadas en clases ya existentes.
Herencia. Hay clases que comparten gran parte de sus características.
Herencia Hay clases que comparten gran parte de sus características. El mecanismo conocido con el nombre de herencia permite reutilizar clases: Se crea una nueva clase que extiende la funcionalidad de
Introducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
Programación Orientada a Objetos
Programación Orientada a Objetos Clases, herencia y contención Programación Avanzada 7 de agosto de 2017 Contenido Introducción Contenido Introducción Introducción al DOO Contenido Introducción Introducción
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones
Introducción Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?
Conceptos Básicos. Programación Orientada a Objetos 2
Programación Orientada a Objetos Conceptos Básicos de Objetos Ing. Julio Ernesto Carreño Vargas MsC. Conceptos Básicos Las aproximaciones ADOO y POO, proveen a los objetos como el principal medio para
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Estructuras de control selectivas
Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos
Java Básico. Polimorfismo. Copyright
Java Básico Polimorfismo Copyright Copyright (c) 2004 José M. Ordax Este documento puede ser distribuido solo bajo los términos y condiciones de la Licencia de Documentación de javahispano v1.0 o posterior.
Universidad de Cantabria
Polimorfismo Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] Objetivos Comprender el mecanismo del polimorfismo Aprender a utilizar el
Reutilización con Delegación y Herencia
Reutilización con Delegación y Herencia Carlos Fontela [email protected] Temario Delegación Herencia UML: clases, paquetes, secuencias Cuándo usar herencia y cuándo delegación Redefinición Clases abstractas
La Herencia: Teoría (1)
Introducción a la Herencia Presentación basada en: 1. Construcción de Software Orientado a Objetos. Bertrand Meyer.1998. 2. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003.
CONTENIDOS. La herencia permite: - Adoptar automáticamente características ya implementadas. Ahorro de tiempo y esfuerzo
CONTENIDOS 1. Introducción 2. Cuándo se aplica el mecanismo de herencia 3. Un ejemplo de herencia 4. Terminología 5. Clase derivada. Creación de una clase derivada 6. Miembros que no se heredan automáticamente
Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos
Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos Programación Orientada a Objetos Facultad de Informática Dep. Ingeniería del Software e Inteligencia Artificial Universidad
