Tema 3: Relaciones entre objetos y clases

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Tema 3: Relaciones entre objetos y clases"

Transcripción

1 Tema 3: Relaciones entre objetos y clases Programación Orientada a Objetos Marcos López Sanz Máster en Informática Gráfica, Juegos y Realidad Virtual Índice Relaciones entre clases Composición Asociación Uso Herencia Clases y objetos: vistas pública y privada Clases y métodos especiales: finales abstractos y de envoltura Interfaces: declaración, implementación y herencia Otros aspectos Herencia vs. Composición Polimorfismo: Instanciación dinámica/herencia Clases especiales 1

2 Relaciones entre clases Colaboración entre dos objetos cuando un objeto lanza mensajes a otro objeto Relación entre dos clases cuando dos objetos de las respectivas clases colaboran entre sí Clase A Clase B Plano de clases (intangible, genérico) objeto a mensaje objeto b Plano de objetos (tangible, particular) Tipos de relaciones entre clases: Composición Asociación Uso Relaciones entre clases Relación de composición Se constituye entre el todo y la parte Objeto de la clase A tiene un/contiene un/posee un objeto de la clase B Cuestiones físicas (libro/páginas) y relaciones lógicas (propietario/casas) Existe una delegación de ciertas responsabilidades del todo a la parte: almacenamiento de datos o funcionalidades Suelen ser atributos de una clase La responsabilidad de manejar el objeto interno es exclusiva del objeto contenedor 2

3 Relaciones entre clases Relación de composición: Ejemplo public class Radio { private final Antena antena = new Antena(); private Dial dial[] = new Dial[2]; private Display display; public Radio(){ Dial.setOrigenOndas(this.antena); this.dial[0]=new Dial( FM ); this.dial[1]=new Dial( AM ); Relaciones entre clases Relación de uso Se establece momentáneamente entre dos objetos (un cliente y un servidor) El objeto cliente utiliza funcionalidades (métodos/mensajes) del objeto servidor para completar su cometido sin dependencias futuras suelen ser variables de métodos: Visibilidad pública Parámetros Visibilidad privada Variables Locales Delegación temporal de responsabilidades del cliente al servidor La responsabilidad de manejar el objeto servidor no depende únicamente del objeto cliente 3

4 Relaciones entre clases Relación de uso: Ejemplo public class Radio { public void moverdial (Cadena cadena) { this.dial.setfrecuencia(cadena.getfrecuencia()); public Cadena getcadenaactual() { Cadena cad = new Cadena (this.dial.getfrecuencia()); return cad; Relaciones entre clases Relación de asociación Relación que perdura entre un cliente y un servidor determinado Creación de una relación bidireccional entre dos objetos al cliente se le pasa una referencia (en un constructor por ejemplo) de un objeto que tiene existencia externa Delegación de responsabilidades del cliente al servidor La responsabilidad de manejar el objeto servidor no depende únicamente del objeto cliente 4

5 Relaciones entre clases Relación de asociación: Ejemplo public class Radio { public Radio (Visor display) { this.display = display; public void mostrarfrecuencia() { this.display.visualizar(this.dial.getfrecuencia()); Relaciones entre clases Características de las relaciones Visibilidad: carácter privado o público de la colaboración entre objetos Temporalidad: mayor o menor duración de la colaboración Versatilidad: intercambiabilidad (modificación) de los objetos en la colaboración con otro objeto Privado Público Momentáneo Uso No Momentáneo Composición Asociación No Versátil Versátil No Versátil 5

6 Relaciones entre clases Factor determinante contexto Ejemplos: Radio/Display Asociación: radio-despertador Composición: radio de coche Paciente/Médico Uso: urgencias de un hospital Asociación: médico de cabecera Motor/Coche Asociación: taller mecánico Composición: parque automovilístico No existe la relación ideal categórica para toda colaboración entre objetos Relaciones entre clases Otros aspectos de las relaciones: Objetivo de establecer relaciones: reconocer, estudiar, analizar, etc. la forma en que colaboran los objetos Establecimiento de relaciones preservando el principio de encapsulación decisión de ingeniería No existen fórmulas para traducir la relación escogida a un código particular: Composición: el objeto parte nace con el objeto todo Asociación: objeto cliente tiene un atributo referencia a otro externo (existente) Uso: objeto que sólo tiene sentido en la ejecución de un método 6

7 Relaciones entre clases: Ejercicio TresEnRaya Turno Jugador Tablero Tomar una clase Determinar el comportamiento Determinar los atributos con sus respectivas relaciones Codificar los métodos Recapitular Coordenada Herencia Concepto de herencia: Def.: Forma de estructurar tipos/clases según su comportamiento mediante la creación de una jerarquía de clasificación Clase padre/madre/base Superclase Generalización Clase hija/extendida/derivada Subclase Especialización 7

8 Herencia Propiedades Un objeto de una subclase puede acceder a campos y métodos declarados en su superclase hereda sus atributos y operaciones Una subclase extiende las propiedades de su superclase Una subclase es una forma restringida de la superclase Intuitivamente fácil de comprender En Java: todo objeto hereda de Object: Object Herencia Propósitos Especificación: Si la superclase es un interfaz o una clase abstracta Especialización: La superclase proporciona funciones a las subclases, pero éstas pueden redefinir los métodos adecuándolos a su comportamiento específico Extensión: La subclase añade nueva funcionalidad (métodos y campos) pero no modifica ni altera lo heredado Subtipo Combinación múltiple: Se hereda de varias clases. Denominada herencia múltiple No permitida en Java 8

9 Herencia Beneficios Reusabilidad del Software: se reutiliza el código heredado Mayor fiabilidad: al reusarse el código existente, hay más posibilidad de encontrar errores y subsanarlos Consistencia de interfaces: la jerarquía de herencia asegura que objetos similares tienen vistas públicas similares Prototipado rápido: al reutilizarse código se favorece este método de desarrollo Ocultación de información: la disponibilidad de interfaces claras reduce las interconexiones entre sistemas (clases padre como interfaz) Todo el código que se haya escrito para objetos de la clase padre también funcionará con objetos de la clase hija Herencia Inconvenientes Velocidad de ejecución: la ligadura dinámica es más lenta que la estática Tamaño del programa: el hecho de usar librerías conduce a programas más grandes que hechos a medida Complejidad del programa: comprender el flujo de ejecución de un POO es más difícil puesto que hay que ascender y descender por la jerarquía de objetos problema del yoyó 9

10 Herencia: Clases.Vista_Publica Sintaxis: public class <idsubclase> extends <idsuperclase> { Subclase = campos y métodos propios + campos y métodos de la superclase Definición de métodos y atributos propios: Métodos existentes (igual nombre): Distinta definición Sobrecarga Igual definición Redefinición: sustituye al de la superclase Visibilidad (modificadores): distintos (pero sólo para hacerlos más restrictivos) Los métodos estáticos no pueden redefinirse Herencia: Clases.Vista_Publica Formas básicas de usar la herencia (no excluyentes) Especialización: relación es-un (IS-A). Redefinición de comportamiento: tipos Reemplazamiento (total): Refinamiento (código añadido) Extensión: se usa la herencia para aumentar la funcionalidad de la clase padre 10

11 Herencia: Objetos.Vista_Publica Principio de sustitución (proviene del concepto de subtipado): A una variable declarada de una clase puede asignársele un objeto creado de una subclase Una referencia puede acceder a un objeto de la clase indicada en su declaración o a una subclase de ésta A una variable de tipo object se le puede asignar cualquier objeto Compatibilidad de asignación: aplicación del principio de sustitución al paso de parámetros y a la devolución de resultados Constructores y métodos: cualquiera de los de su clase y las clases padre Herencia: Objetos.Vista_Publica Comprobación de la clase de un objeto (devuelve un booleano) <referencia> instanceof <idclase> Proyección: Una variable de la clase A puede contener referencias a objetos de la clase B A a; a = new B(); Se dice que: A es el tipo estático de la variable a B es el tipo dinámico de a. El tipo estático siempre se determina en tiempo de compilación mientras que el tipo dinámico en general sólo se puede conocer en tiempo de ejecución y puede cambiar. 11

12 Herencia: Clases.Vista_Privada Una clase extendida puede acceder a los campos y métodos de sus superclases Constructores: No se heredan deben declararse explícitamente La construcción del estado puede delegarse a las clases hijas Invocación explícita a un constructor de la superclase: super(<parámetros>) Métodos: Acceso mediante super.<método>(<parámetros>); Atributos: No se redefinen en caso de igual nombre se sobreescribe el de la superclase Accesos a campos de superclases (sobreescritos u ocultos) con super.<atributo> Herencia: Clases.Vista_Privada Los constructores (en java) no se heredan class A{ A(int ix, int iy){... ; class B extends A{... B b= new B(1,2); // error, ningún constructor casa 12

13 Herencia: Clases.Vista_Privada El constructor de la clase base se puede invocar con super class B extends A {... B(int ix, int iy) { super(ix, iy); z= 0; B(int ix, int iy, int iz) { super(ix, iy); z= iz; B(B b) { z= b.z; // x=y=? super(b.x, b.y); // error, super debe ser la primera instrucción Herencia: Objetos.Vista_Privada Creación de un objeto: reserva de memoria para todos sus campos incluidos los que se heredan de sus superclases Pasos: Invocación del constructor de la superclase (implícita o explícitamente) Inicialización de los campos: Se admiten referencias a campos del objeto en su orden de declaración actual Se ejecuta el cuerpo del constructor que lo invocó para que acabe de ejecutar el resto de su cuerpo. El proceso continúa hasta que se haya ejecutado el cuerpo del constructor invocado por el operador new 13

14 Herencia: Objetos.Vista_Privada Enlace dinámico (o ligadura dinámica) class A{... void print(){ System.out.println(x+" "+y); B b= new B(1, 2, 3); b.print(); // 1 2 Herencia: Objetos.Vista_Privada Enlace dinámico (o ligadura dinámica) class B extends A {... void print() // Redefinición { System.out.println(x+" "+y+" "+z); B b= new B(1, 2, 3); b.print(); // A a= new A(1, 2); a.print(); //

15 Herencia: Objetos.Vista_Privada Enlace dinámico (o ligadura dinámica) A a= new B(1, 2, 3); a.print(); //? Solución: se invoca el método definido para el tipo dinámico de la variable (el de la clase más específica a la cual pertenece el objeto referenciado por la variable) Enlace dinámico: forma de enlazar el nombre de un método con el código que se ejecutará para un objeto determinado El método que finalmente se invocará (en general) sólo se conoce durante la ejecución y no durante la compilación Polimorfismo Def.: posibilidad que tienen distintos objetos de actuar de una manera diferente (desencadenar operaciones distintas) en respuesta a un mismo mensaje (una misma llamada a función) void dormir() { Animal numerojaula dorm ir() getnum erojaula() Cuidador acostar(fiera : Animal) prepararjaula(fiera : Animal) Pantera León Oso subirarbol() acostarse() tumbarse() void dormir() { // en un árbol void dormir() { // sobre el vientre void dormir() { // sobre la espalda Christopher Strachey. Fundamental concepts in programming languages. Lecture Notes, International Summer School in Programming Languages, Copenhagen, August

16 Polimorfismo public class Cuidador{ public Cuidador (){; private void prepararjaula(animal fiera){ int jaula = fiera.getnumerojaula(); this.limpiarjaula(jaula); public void acostar(animal fiera){ this.prepararjaula(animal fiera); fiera.dormir(); public class Animal { private int numerojaula; public Animal (int jaula){ this.numerojaula = jaula; public void dormir () { public int getnumerojaula(){ return this.numerojaula; Polimorfismo public class Pantera extends Animal { public Pantera (int jaula){ super(jaula); public void dormir (){ this.subirarbol(); public class Oso extends Animal { public Oso (int jaula){super(jaula); public void dormir (){ this.tumbarse(this.roca); public class Leon extends Animal { public Leon (int jaula){ super(jaula); public void dormir (){ this.acostarse(); 16

17 Polimorfismo public class Zoo{ public static void main(){ Animal[] animales = new Animal[54]; // creamos un array con los animales de un Zoo for(int i = 0; i < 18; i++) { animales [3 * i + 0] = new Pantera(3 * i + 0); animales [3 * i + 1] = new Oso(3 * i + 1); animales [3 * i + 2] = new Tigre(3 * i + 2); // recorremos el array de animales haciendo que el cuidador los mande a dormir Cuidador cuidador = new Cuidador(); foreach(animal fiera in animales) { cuidador.acostar(fiera); Polimorfismo Tipos de polimorfismo Ad hoc o estático: (overloading = utilizar la misma sintaxis para objetos de diferente tipo) Sobrecarga Coerción: conversión de objetos de una clase a otra (cast) Dinámico, universal o polimorfismo de subtipado : (overriding) Permite a una función utilizar un objeto que se le ha pasado de un tipo T pero que también funcionaría si se le pasa un subtipo de T (principio de sustitución de Liskov) Subtyping Paramétrico: permite a una función tratar argumentos de diferente tipo Bases: Herencia: no se puede aplicar polimorfismo dinámico si no es con clases que hereden de otras (subclassing) Instanciación dinámica: una referencia a un objeto A puede estar haciendo referencia a distintos objetos derivados de la clase A el polimorfismo siempre implica enlace dinámico Beneficios: Abstracción: no es necesario conocer toda la jerarquía de clases derivadas Extensibilidad: aumentar la funcionalidad del programa/sistema sin tener que modificar el código ya escrito 17

18 Clases especiales Interfaces Clases abstractas Clases finales Clases internas Clases e interfaces internas static Clases internas miembro (no static) Clases internas locales Clases anónimas Clase Object Clases de envoltura Clases especiales: Interfaces Def.: Conjunto de declaraciones de métodos (sólo definición de cabeceras, sin implementación). Sintaxis de creación de un interface : public interface <idinterfaz> { Reglas similares a la creación de clases: empiezan por mayúscula, el fichero en el que se guardan se llama igual que el interfaz, etc. Atributos: sólo constantes siempre public, static y final deben inicializarse Métodos: siempre public y abstract 18

19 Clases especiales: Interfaces Definición de clases que implementan interfaces: public class <idclase> [ extends <idsuperclase> ] implements <idinterfaz1>[,<idinterfaz2>, ] { Toda clase que implemente un interface debe proporcionar una definición a sus métodos le da un modo de funcionamiento (una conducta) Una clase puede implementar más de un interface (es la forma de tratar la herencia múltiple) Herencia: Se permite herencia simple y múltiple entre interfaces Se puede utilizar también con extends Polimorfismo: se puede utilizar un interface como tipo de una referencia aunque su uso estará restringido a los métodos del interface. Clases especiales: Abstractas Tipos de clases Abstractas: no se pueden crearse objetos concretos Concretas: sí se puede Declaración de clase abstracta public abstract class <idclase> { Se permite extends pero no final Declaración de métodos abstractos public abstract <idtipo><idmetodo>(<param.>); No se permite static ni final Cualquier clase que tenga un método abstract tiene que ser declarada como abstracta 19

20 Clases especiales: Abstractas Usos Especificar datos o métodos comunes a un conjunto de (sub-)clases pero sin suficiente entidad para crear objetos Forzar que las subclases tengan un comportamiento propio (métodos abstractos) Compatibilidad de asignación (herencia) Implementación no válida para parte de la jerarquía, etc Clases especiales: Abstracta vs. Interface 1. Una clase no puede heredar de 2 clases abstract pero si de una abstract e implementar uno o más interface 2. Una clase no hereda métodos implementados de un interface pero sí constantes 3. Los interface permiten publicar comportamiento de una clase desvelando un mínimo de información 4. Los interface tienen una jerarquía propia, más flexible que las clases permite herencia múltiple 5. Polimorfismo: las referencias de tipo interfaz se comportan igual que las de tipo clase abstracta 20

21 Clases especiales: Finales El modificador final restringe la flexibilidad del sistema OO Clase final No puede tener ninguna subclase Todos sus métodos son finales Método final No puede ser redefinido en una subclase Atributo final Se utiliza como una constante: no se puede modificar su valor (una vez asignado) Clases especiales: Internas Def.: es una clase definida dentro de otra, llamada clase contenedora class ClaseContenedora{ class ClaseInterna{ Tipos Static Miembro (no static) Locales Anónimas 21

22 Clases especiales: Internas Static (o anidadas) static class ClaseInterna{ Utilización: ClaseContenedora.ClaseInterna Pueden definirse clases o interfaces internas static dentro de clases o interfaces contenedoras Se permiten varios niveles de anidamiento Modificadores: final, public, private y protected Clases especiales: Internas Clases internas miembro (no static) o simplemente internas Definidas al máximo nivel de la clase contenedora No pueden tener variables miembro static Especial: cada objeto de la clase interna existe dentro de un y sólo un objeto de la clase contenedora 22

23 Clases especiales: Internas Miembro (no static): Acceso a los atributos desde los métodos Los métodos de la clase interna ven directamente las variables del objeto contenedor Los métodos de la clase contenedora necesitan referenciarlos con un objeto de la clase interna (cualificar) Permisos de acceso Clases internas: private y protected (las normales sólo pueden ser public y package) Clase interna: acceso a todos los atributos de la clase contenedora Clase contenedora: acceso a los atributos de la clase interna a través de referencia Otras características this = atributos de la clase interna ClaseContenedora.this = atributos de la clase contenedora Creación de un objeto de la clase interna a partir de uno de la clase contenedora (obligatorio): ClaseContenedora.ClaseInterna b = objclasecontenedora.new ClaseInterna() Clases especiales: Internas Locales Definidas dentro de un bloque de código, normalmente un método (o un inicializadorstatic) Acceso a todas los atributos de la clase contenedora Acceso a las variables del bloque de código No pueden: Tener el mismo nombre que la clase contenedora Definir variables, métodos o clases static Definir modificadores de visibilidad siempre dependientes del bloque en el que se declaran 23

24 Clases especiales: Internas Anónimas Como las clases locales pero sin nombre En las locales primero se define la clase y luego se crean los objetos de esa clase. En las clases anónimas estos pasos se hacen a la vez al no tener nombre (tampoco tienen constructores) Formas de creación: new { // declaración de la clase new NombreClase/InterfazDelQueHereda () { // declaración de la clase ; Clases especiales: Object Es la raíz de toda la jerarquía de Java Por defecto cualquier clase es subclase de Object, es decir: public class c { = public class c extends Object { Métodos que pueden ser redefinidos por el programador: Object clone (): devuelve una copia del objeto boolean equals (Object obj): indica si 2 referencias son el mismo objeto String tostring(): devuelve una representación del objeto finalize(): destruir el objeto Métodos que no pueden ser redefinidos (finales) Class getclass(): devuelve un objeto de la clase Class al que se le puede preguntar por el nombre de la clase notify(), notifyall() y wait(): métodos relacionados con los threads 24

25 Clases especiales: de envoltura Se refieren a todas las clases definidas en Java para representar tipos primitivos Object Boolean Character Number Void Byte Short Integer Long Float Double Funciones principales: Proporcionar métodos de utilidad al tipo primitivo (valueof, MIN_VALUE, etc.) Crear objetos que almacenen tipos primitivos Constructores (creación de un objeto de la clase de envoltura) A partir de un tipo primitivo A partir de una cadena de caracteres Agradecimientos Algunos contenidos y gráficas recogidas en estas transparencias han sido extraídos del libro: Programación II: Teoría y práctica del módulo de programación orientada a objetos ISBN: Es por ello que queremos agradecer a Luís Fernández Muñoz la posibilidad de reproducir parte de su contenido 25

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 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

Más detalles

PROGRAMACION ORIENTADA A OBJETOS EN C++

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

Más detalles

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1 Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos

Más detalles

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado Facultad de Ingeniería. Escuela de computación. 2 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 5 3 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo de sus prácticas

Más detalles

Programación Orientada a Objetos (POO)

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

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 6: Polimorfismo y reutilización

Programación orientada a objetos. Resumen de Temas Unidad 6: Polimorfismo y reutilización Programación orientada a objetos Resumen de Temas Unidad 6: Polimorfismo y reutilización 6.1 Concepto de Polimorfismo Polimorfismo quiere decir "un objeto y muchas formas". Esta propiedad permite que un

Más detalles

La Herencia: Teoría (1)

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.

Más detalles

16. Herencia Definición de herencia. 168 A. García-Beltrán y J.M. Arranz

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

Más detalles

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

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:

Más detalles

Conceptos más avanzados de Programación Orientada a Objetos

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

Más detalles

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 Índice INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11 1.1 PROGRAMA Y LENGUAJESDE PROGRAMACIÓN...12 1.1.1 EL LENGUAJE JAVA...13 1.1.2 EL JDK...15 1.1.3 LOS PROGRAMAS EN JAVA...16

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos

Más detalles

Principios de Computadoras II

Principios de Computadoras II Departamento de Ingeniería Electrónica y Computadoras Ing. Ricardo Coppo rcoppo@uns.edu.ar Qué es un Objeto? Un objeto es una instancia de una clase Las clases actuán como modelos que permiten la creación

Más detalles

Introducción a la Orientación a Objetos

Introducción a la Orientación a Objetos Introducción a la Orientación a Objetos Breve historia de la OO 1960s. Simula incorpora características propias de la OO. 1970s. Smalltalk. Lenguaje totalmente OO. 1990s. Boom de la OO. 2000-Hoy. Época

Más detalles

Modulo 11. Clases y Objetos en Java

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.

Más detalles

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

Clases y Objetos en Java. ELO329: Diseño y Programación Orientados a Objetos Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos Construyendo clases nuevas La forma más simple de una clase en Java es: Class Nombre_de_la_Clase { } /* constructores */ /* métodos

Más detalles

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia

Programación orientada a objetos. Capítulo 8 Mejora de las estructuras mediante herencia Programación orientada a objetos Capítulo 8 Mejora de las estructuras mediante herencia Clases y objetos de DoME Modelo de objetos Modelo de clases Crítica de la v1 de DoME - Duplicación de código - Las

Más detalles

Lenguaje de programación con JAVA

Lenguaje de programación con JAVA Pág. N. 1 Lenguaje de programación con JAVA Familia: Editorial: Autor: Tecnología de la información y computación Macro Eric Gustavo Coronel Castillo ISBN: 978-612-304-288-2 N. de páginas: 360 Edición:

Más detalles

2.2 Nombres, Ligado y Ámbito

2.2 Nombres, Ligado y Ámbito 2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el

Más detalles

Conceptos de Programación Orientada a Objetos

Conceptos de Programación Orientada a Objetos Paradigmas de programación Prog. orientada a objetos Conceptos de Programación Orientada a Objetos Abstracción de Programación estructurada Programación imperativa 2 Programación estructurada (I) Programación

Más detalles

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

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

Más detalles

Herencia. Hay clases que comparten gran parte de sus características.

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

Más detalles

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES Área de formación: Disciplinaria Unidad académica: Programación Orientada a Objetos Ubicación: Cuarto Semestre Clave: 2087 Horas

Más detalles

4.1 - OBJETOS Y CLASES

4.1 - OBJETOS Y CLASES 4.- Elementos relacionados con la Orientación a Objeto 4.1 - OBJETOS Y CLASES Intoducción Alan Kay (Smalltalk) Todo es un objeto. Un programa es un grupo de objetos diciendose unos a otros qué deben hacer

Más detalles

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011

TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso 2010/2011 TEMA 2 Introducción a C# ANÁLISIS Y DESARROLLO DE APLICACIONES INFORMÁTICAS Curso Origen Nuevo lenguaje de propósito general de Microsoft para la plataforma.net Es el único que ha sido diseñado específicamente.net

Más detalles

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

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

Más detalles

ÍNDICE DEL LIBRO Y DEL EBOOK APRENDER A PROGRAMAR EN JAVA DESDE CERO. CURSO PASO A PASO.

ÍNDICE DEL LIBRO Y DEL EBOOK APRENDER A PROGRAMAR EN JAVA DESDE CERO. CURSO PASO A PASO. ÍNDICE DEL LIBRO Y DEL EBOOK APRENDER A PROGRAMAR EN JAVA DESDE CERO. CURSO PASO A PASO. INDICE 1. INTRODUCCIÓN A JAVA 1.1. Qué es Java? 1.2. Es Java un lenguaje ideal para aprender a programar? 1.3. Es

Más detalles

Guía práctica de estudio 04: Clases y objetos

Guía práctica de estudio 04: Clases y objetos Guía práctica de estudio 04: Clases y objetos Elaborado por: M.C. M. Angélica Nakayama C. Ing. Jorge A. Solano Gálvez Autorizado por: M.C. Alejandro Velázquez Mena Guía práctica de estudio 04: Clases y

Más detalles

Polimorfismo. Métodos virtuales

Polimorfismo. Métodos virtuales Polimorfismo. Métodos virtuales El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas. Cuando se habla de polimorfismo en programación orientada a objetos se suelen entender

Más detalles

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con

La clase Integer y sus métodos. Los Operadores (concepto). Operadores Lógicos y a nivel de Bits. Operadores de desplazamiento. Concatenaciones. La Con Fases de POO (Análisis y Diseño). Un ejemplo de Análisis y Diseño. Repaso de conceptos de Abstracción y ejemplos. Repaso y definición de Clases, estructura de una clase en Java. Declaración de atributos

Más detalles

Clases Abstractas e Interfaces

Clases Abstractas e Interfaces Clases Abstractas e Interfaces Presentación basada en: 1. Java 2., Curso de programación. Fco. Javier Ceballos. Ed. Alfoomega&RA-MA, 2003. 2. Apuntes del Curso Programación Orientado a Objetos. Pablo Castells.

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto

Más detalles

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo

- Compilar y ejecutar programas en Java - Estructura básica de una clase - El comando javac - El comando java - Introducción al IDE de desarrollo - Introdución a Java - Breve historia de Java - Características del lenguaje Java - Estructura del JDK 1.6 - Documentación del API (JavaDoc) - Instalar y configurar el ambiente de desarrollo - La variable

Más detalles

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: 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

Más detalles

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico

Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico Conceptos Objeto Clase Atributo / Método Encapsulamiento Mensaje Herencia Polimorfismo Encadenamiento Dinámico Objeto Representa una instancia de un elemento del mundo del problema Es cualquier elemento

Más detalles

Tema 3. Programación orientada a objetos en Java (Parte 1)

Tema 3. Programación orientada a objetos en Java (Parte 1) Programación en Java Tema 3. Programación orientada a objetos en Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Clases y objetos (I) Clase Cojunto de datos (atributos) y funciones (métodos)

Más detalles

Conversión entre Tipos

Conversión entre Tipos Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen

Más detalles

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)

1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo) . Sobrecarga de operadores. unarios Operador de incremento (prefijo). Devolución de objetos en los métodos. Retorno por referencia Sobrecarga de operadores Los operadores aceptan uno o varios operandos

Más detalles

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los

Más detalles

Java Inicial (20 horas)

Java Inicial (20 horas) Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción

Más detalles

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc.

Tutorial de C# Delegados y Eventos. Por: Óscar López, M.Sc. Tutorial de C# Delegados y Eventos Por: Óscar López, M.Sc. olopez@uniandino.com.co DELEGADOS Delegados Son unos objetos que implícitamente extienden de System.Delegate y definen un tipo referencia soportado

Más detalles

Universidad Salesiana de Bolivia

Universidad Salesiana de Bolivia Universidad Salesiana de Bolivia Ingeniería de Sistemas I DATOS DE IDENTIFICACIÓN PLAN DE DISCIPLINA GESTIÓN II - 2015 INSTITUCIÓN UNIVERSITARIA: Universidad Salesiana de Bolivia RECTOR: Dr. Rvdo. P. Thelian

Más detalles

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar.

Una Clase: define un grupo de objetos que tienen propiedades similares y se comportan de manera similar. Clases La programación orientada a objetos utiliza clases para encapsular (envolver, esconder) datos (atributos) y métodos (comportamientos). Por ejemplo, el estéreo de un auto encapsula todos los atributos

Más detalles

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A)

Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) aprenderaprogramar.com Arrays unidimensionales. Dim.Option Base. Erase. Ejemplos en Visual Basic (CU00311A) Sección: Cursos Categoría: Curso Visual Basic Nivel I Fecha revisión: 2029 Autor: Mario R. Rancel

Más detalles

La sintaxis básica para definir una clase es la que a continuación se muestra:

La sintaxis básica para definir una clase es la que a continuación se muestra: DEFINICIÓN DE CLASES Y OBJETOS EN C# Sintaxis de definición de clases La sintaxis básica para definir una clase es la que a continuación se muestra: class nombreclase miembros De este modo se definiría

Más detalles

Tema 3: Programación orientada a objetos (I)

Tema 3: Programación orientada a objetos (I) Tema 3: Programación orientada a objetos (I) Ventajas del enfoque orientado a objetos Clases y Objetos Métodos y Mensajes Algoritmos y Sentencias Construcción de software orientado a objetos Búsqueda de

Más detalles

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

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í

Más detalles

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo. Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones

Más detalles

Tema 4. Excepciones en Java

Tema 4. Excepciones en Java Programación en Java Tema 4. Excepciones en Java Luis Rodríguez Baena Facultad de Informática Excepciones (I) Permiten la captura de errores en tiempo de ejecución. El control de excepciones permite extraer

Más detalles

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga Programación orientada a objetos Resumen de Temas Unidad 4: Sobrecarga 4.1 Conversión de tipos (1) Conversiones implícitas: La conversión entre tipos primitivos se realizan de modo automático de un tipo

Más detalles

Forma Básica Clase Java

Forma Básica Clase Java Programación Orientada a Objetos Conceptos Básicos de Objetos en Java Ing. Julio Ernesto Carreño Vargas MsC. Forma básica de una clase en Java Especifica que la clase forma parte del paquete conceptos

Más detalles

Las plantillas permiten definir funciones genéricas.

Las plantillas permiten definir funciones genéricas. Introducción (Genericidad). Plantillas de funciones o funciones genéricas. Sintaxis de plantillas. Ejemplos de declaraciones. A tener en cuenta Un ejemplo de plantilla de funciones: Máximo de un vector.

Más detalles

Programación Orientada a Objetos en Java

Programación Orientada a Objetos en Java Programación Orientada a Objetos en Java Curso 2006-2007 Tema 3 Clases y Objetos Gonzalo Méndez Pozo Dpto. de Ingeniería de Software e Inteligencia Artificial Universidad Complutense de Madrid Clases y

Más detalles

Universidad de Cantabria corcuerp@unican.es

Universidad de Cantabria corcuerp@unican.es Herencia Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender los conceptos de herencia Comprender la forma de derivar una

Más detalles

Java para programadores

Java para programadores Java para programadores Java y Servicios Web I Master en Ingeniería Matemática Manuel Montenegro Dpto. Sistemas Informáticos y Computación Desp. 467 (Mat) montenegro@fdi.ucm.es Contenidos Variables. Tipos

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...

Más detalles

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

Tema 2. El lenguaje de programación Java (Parte 1) Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Python: Programación Orientada. JESSE PADILLA AGUDELO Ingeniero Electrónico

Python: Programación Orientada. JESSE PADILLA AGUDELO Ingeniero Electrónico Python: Programación Orientada a Objetos JESSE PADILLA AGUDELO Ingeniero Electrónico Licencia de la Presentación 3 Objetivos Dar un repaso general a la Programación Orientada a Objetos, comprendiendo de

Más detalles

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015

Aspectos de los LP. Diseño de compiladores. Estático vs. Dinámico. Estático vs. Dinámico. Scope. Scope 24/03/2015 Aspectos de los LP Diseño de compiladores Lenguajes de Programación Antes de comenzar con la construcción de un compilador, debemos comprender los conceptos basicos del lenguaje de programación con el

Más detalles

JAVA 7 Los fundamentos del lenguaje Java

JAVA 7 Los fundamentos del lenguaje Java Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado

Más detalles

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto

Programación Orientada a Objetos con Java. Elementos Básicos del Lenguaje Java. Creación de un objeto. Creación de un objeto. Creación de un objeto Programación Orientada a Objetos con Java Rafael Rivera López Elementos Básicos del Lenguaje Java II Ingeniería en Sistemas Computacionales Agosto-Diciembre de 24 Veracruz, Ver. Creación de un objeto Una

Más detalles

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

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í

Más detalles

2. Estructura de un programa en Java

2. Estructura de un programa en Java 24 A. García-Beltrán y J.M. Arranz 2. Estructura de un programa en Java Objetivos: a) Describir la estructura del código fuente de una aplicación Java b) Presentar los conceptos de comentario y de identificador

Más detalles

1

1 Curso: BORLAN DELPHI 5 Curso de desarrollo de aplicaciones Windows utilizando el entorno de programación Borland Delphi 5. Se estudian las particularidades del lenguaje Delphi, así como su sintaxis; sus

Más detalles

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos

Curso Fundamentos de Informática Lección 7. Programación Orientada a Objetos Fundamentos de Informática Lección 7. Programación Orientada a Objetos Curso 2010-2011 José Ángel Bañares y Pedro Álvarez 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Implementación

Más detalles

Tema 7: Polimorfismo. Índice

Tema 7: Polimorfismo. Índice Tema 7: Polimorfismo Antonio J. Sierra Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos. Recursividad. Control de acceso. Static. Final. Argumento

Más detalles

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS

PROGRAMACIÓN ORIENTADA A OBJETOS CONCEPTOS GENERALES PROGRAMACIÓN ORIENTADA A OBJETOS XAVIER CALDERÓN H. CONCEPTOS Paradigma: Palabra de origen griego que significa modelo o patrón. Paradigma de Programación: Propuesta de una comunidad

Más detalles

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5 TEMARIO MODULO I. EL LENGUAJE C# 5 Introducción al desarrollo de soluciones informáticas. El Framework.NET. o Descripción de la plataforma. o Las especificaciones

Más detalles

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida } REUTILIZACIÓN DE CLASES:MODELO DE HERENCIA EN JAVA Java soporta herencia simple pero no múltiple. Lo hace mediante el mecanismo de extensión de clase. A partir de él, una subclase se extiende (hereda)

Más detalles

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B)

INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) APRENDERAPROGRAMAR.COM INDICE DEL CURSO APRENDER PROGRAMACIÓN JAVA DESDE CERO. PROGRAMACIÓN ORIENTADA A OBJETOS (CU00601B) Sección: Cursos Categoría: Curso Aprender programación Java desde cero Fecha revisión:

Más detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Introducción a Java LSUB. 30 de enero de 2013 GSYC Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

Descripción y Contenido del Curso. Programación C++ Capacity Academy.

Descripción y Contenido del Curso. Programación C++ Capacity Academy. Descripción y Contenido del Curso Programación C++ Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso aprenderás todo

Más detalles

Diplomado Programación orientada a objetos con C++ y UML. Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos

Más detalles

Programación Orientada a Objetos con Java

Programación Orientada a Objetos con Java Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Sobrecarga de métodos Java permite la definición de dos o más métodos que tengan el mismo nombre, dentro de la

Más detalles

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC. Programación n Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño o Vargas MsC. Variables y expresiones aritméticas Variables Conceptos de Memoria Una variable es un espacio en la memoria

Más detalles

Definición y Conversión de datos. Agustín J. González ELO-329

Definición y Conversión de datos. Agustín J. González ELO-329 Definición y Conversión de datos Agustín J. González ELO-329 1 Calificador Const El calificador const previene que un objeto sea modificado con posterioridad a su definición. El objeto calificado como

Más detalles

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Tema 7.- Fundamentos de la Programación Orientada a Objetos Tema 7.- Fundamentos de la Programación Orientada a Objetos 7 de enero de 2014 Objetivos Saber definir clases propias. Saber crear objetos de una clase determinada e interactuar con ellos (Problema 1).

Más detalles

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª

C.I.F.: B Inscrita en el Registro Mercantil de Madrid, Tomo Libro 0, Folio 135, Sección 8. Hoja M Inscripción 1ª INTRODUCCIÓN A JAVA QUÉ ES JAVA Introducción ORGANIZACIÓN JME (Mobile / Wireless) JSE (Core / Desktop) JEE (Enterprise / Server) LA HISTORIA El comienzo Aparición de Internet Por qué el nombre JAVA DESARROLLO,

Más detalles

CONTENIDOS. La herencia permite: - Adoptar automáticamente características ya implementadas. Ahorro de tiempo y esfuerzo

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

Más detalles

Prácticas de Programación

Prácticas de Programación Prácticas de Programación Tema 1. Introducción al análisis y diseño de programas Tema 2. Clases y objetos Tema 4. Tratamiento de errores Tema 5. Aspectos avanzados de los tipos de datos Tema 6. Modularidad

Más detalles

Práctica 4: Herencia. Objetivos:

Práctica 4: Herencia. Objetivos: Práctica 4: Herencia Objetivos: Como se implementa la herencia en Java (superclase - clase descendiente). Utilizar super. Redefinición de métodos Clase Object Clase System Clases abstractas 1. Herencia.

Más detalles

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014

Tema 4 Genericidad en Java. Programación Orientada a Objetos Curso 2013/2014 Tema 4 Genericidad en Java Programación Orientada a Objetos Curso 2013/2014 Contenido Antecedentes. Genericidad en Java 5 y posterior. Características avanzadas: Genericidad restringida. Tipo puro. Limitaciones

Más detalles

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación.

Java Avanzado. Guía 1. Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 1 Java Avanzado Facultad de Ingeniería. Escuela de computación. Java Avanzado. Guía 2 Introducción Este manual ha sido elaborado para orientar al estudiante de Java Avanzado en el desarrollo

Más detalles

Metodologías en la Ingeniería del Software Métodos Orientados a Objetos

Metodologías en la Ingeniería del Software Métodos Orientados a Objetos Metodologías en la Ingeniería del Software Métodos Orientados a Objetos García Departamento de Ciencias de la Computación Universidad de Alcalá Contenidos Historia Orientación a Objetos (OO) Problemas

Más detalles

Java en 2 horas. Rodrigo Santamaría

Java en 2 horas. Rodrigo Santamaría + Java en 2 horas Rodrigo Santamaría + Generalidades 2 Desarrollado por Sun en 1995 Hereda mucha de la sintaxis de C (1972) Fuertemente tipado y orientado a objetos Aplicaciones compiladas a bytecode Gestión

Más detalles

POO en Java. Relaciones de composición y Herencia. Composición: clase Círculo. Composición. Herencia: La palabra reservada extends

POO en Java. Relaciones de composición y Herencia. Composición: clase Círculo. Composición. Herencia: La palabra reservada extends Relaciones de composición y Herencia POO en Java Características: Composición tiene un Herencia es un Polimorfismo. Abstracción. Clases y objetos. Java Arrays y Cadenas 1 Java Arrays y Cadenas 2 Composición

Más detalles

Fundamentos de JAVA. Angel Kuri Enero, /2/2006

Fundamentos de JAVA. Angel Kuri Enero, /2/2006 Fundamentos de JAVA Angel Kuri Enero, 2006 Enunciados y Expresiones Los siguientes son enunciados sencillos: int i = 1 import java.awt.font System.out.println( Esta moto es una + color + + marca); m.enginestate

Más detalles

Índice de contenido. Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv

Índice de contenido. Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv Índice de contenido Índice de contenido... i Indice de prácticas...ix Prólogo...xi Cómo utilizar este libro...xv Capítulo 1: La computadora y los niveles de datos Computadora...3 Tipos de dispositivos...4

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

5. Sentencias selectivas o condicionales

5. Sentencias selectivas o condicionales 60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado

Más detalles

INDICE Capitulo 1. Fundamentos de Java Capitulo 2. Clases y POO

INDICE Capitulo 1. Fundamentos de Java Capitulo 2. Clases y POO INDICE Introducción 1 Componentes de java 2 * Aplicación en Web 3 * Qué es POO? 3 * Ventajas de POO 3 * Conceptos de POO 4 * Características de Java 6 * POO en java 7 * Applets 8 * Trabajo en red 8 * Multihilos

Más detalles

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación 1 Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera Fundamentos de programación Agenda Caracteres y Cadenas Conversión de Datos Introducción a las funciones y procedimientos

Más detalles

INDICE Capitulo 1. introducción a las computadoras y a la programación Capitulo 2. El lenguaje de programación Java. aplicaciones y programas

INDICE Capitulo 1. introducción a las computadoras y a la programación Capitulo 2. El lenguaje de programación Java. aplicaciones y programas INDICE Capitulo 1. introducción a las computadoras y a la programación 1 1.1. Qué es una computadora? Qué es un ordenador? 2 1.2. Organización física de un computadora (hardware) 2 1.2.1. dispositivos

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

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

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays

Más detalles

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su

b) Qué tipo de variable son las de la línea 6? Cuál es su visibilidad? Explique su Universidad de La Laguna. Escuela Técnica Superior de Ingeniería Informática Tercero del Grado de Informática LENGUAJES Y PARADIGMAS DE PROGRAMACION. SEGUNDA PARTE 5 páginas Nombre: Alu: 1. Cuál es la

Más detalles