Derechos de Acceso: COMPOSICION

Documentos relacionados
Clases abstractas e interfaces

Programación Orientada a Objetos (POO)

PROGRAMACION ORIENTADA A OBJETOS EN C++

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

Introducción a la Orientación a Objetos

15. Parámetros o argumentos

POLIMORFISMO. import java.util.*; class Instrumento { public void tocar() { System.out.println("Instrumento.tocar()"); public String tipo() {

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

PROYECTO FIGURAS DIAGRAMA DE FLUJO

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

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

Curso de Java POO: Programación orientada a objetos

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

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

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

Capítulo 16. Diagrama de Clases UML

GUÍA DE ESTILO EN JAVA

Taller de Programación I. Tema 06: Orientación al Objeto en Java (parte 2)

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

Principios de Computadoras II

Java Inicial (20 horas)

Modulo 11. Clases y Objetos en Java

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

class Nombre_Clase extends Nombre_SuperClase { cuerpo de la clase extendida }

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

Programación Orientada a Objetos con Java

Forma Básica Clase Java

Clases Abstractas e Interfaces

Introducción a la Programación Orientada a Objetos

La Herencia: Teoría (1)

Tema 2. Técnicas básicas de POO. Técnicas de Programación - Curso 2007/08

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

Necesidad de la herencia pertenencia variedad is a has a herencia variedad definir una clase modificando una o más clases añadir nuevos miembros

4.1 - OBJETOS Y CLASES

PARA QUÉ SIRVEN LAS INTERFACES JAVA. IMPLEMENTAR UNA INTERFAZ DEL API. VENTAJAS. EJEMPLOS BÁSICOS. (CU00697B)

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2007/08

2.2.- Paradigmas de la POO

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

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

Programación Orientada a Objetos en Java

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Programación Orientada a Objetos en Java

Programación orientada a objetos

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

Ejercicios de evaluación de fundamentos de programación en Java

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

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

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

Programación en Java. Programación en OO

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

Orientación a Objetos en Java

Conceptos de Programación Orientada a Objetos

Prácticas de Programación

Interfaces y Clases Internas. ELO329: Diseño y Programación Orientados a Objetos

Encapsulación: clases y objetos

Tema 4. Excepciones en Java

Herencia e Interfaces

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

APELLIDOS:... NOMBRE:... GRUPO:... NÚMERO DE EXPEDIENTE:...

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

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

Curso Introducción JAVA Pág.: 1

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

Java en 2 horas. Rodrigo Santamaría

Experto Universitario en Desarrollo de Aplicaciones para Dispositivos Móviles. Sesión 1: Introducción al Lenguaje Java

Refactoring con Netbeans

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

b c b c b b a a c a a c b c c b b c b c d c c c b

Soluciones Ejercicios Tema 3

2.2 Nombres, Ligado y Ámbito

Universidad de Cantabria

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

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

Tema: Introducción al IDE de Microsoft Visual C#.

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

Java: Clases Abstractas e Interfaces

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

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

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

POO en Java IV: Herencia (Parte 1)

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

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

Clase adicional 2. Estructuras básicas de control. Temas

Tema 7: Polimorfismo. Índice

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

2.1. Introducción al lenguaje Java

Las plantillas permiten definir funciones genéricas.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Elementos léxicos del lenguaje de programación Java

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

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

Clases en Java. Declaración de clases en Java 02/09/16. Ing. Roberto Martínez Román - public class Alumno { private int matricula;

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

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

Ejercicios del tema 7: Clases y objetos

Transcripción:

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: Acceso privado (private): Los elementos privados solo se pueden usar dentro de la clase que los define, nunca desde ninguna otra clase. Acceso de paquete: No se pone nada. El acceso a estos componentes es libre dentro del paquete en el que se define la clase. Acceso protegido (protected): los elementos protegidos solo se pueden usar dentro de la clase que los define, aquellas clases que la extiendan y cualquier clase en el mismo paquete. Acceso publico (public): Dicho elemento se puede usar libremente. COMPOSICION La composicion es el agrupamiento de uno o varios objetos y valores como atributos que conforman el valor de los distintos objetos de una clase. PAQUETES Los paquetes son agrupaciones de clases, interfaces y otros paquetes (subpaquetes), normalmente relacionados entre si. Los paquetes proporcionan un mecanismo de encapsulacion de mayor nivel que las clases. Los paquetes permiten unificar un conjunto de clases e interfaces relacionados funcionalmente. Por ejemplo, el paquete java engloba una serie de paquetes con utilidades de soporte al desarrollo y ejecucion de la aplicación. Contiene a su vez, los subpaquetes util o lang. Para indicar que la clase que se esta escribiendo pertenece a un paquete, la primera secuencia debe tener la sintaxis: package nombrepaquete; cuando en una clase se quieren utilizar componentes que están en otro paquete diferente, se añade una declaración de importación, que puede tener las siguientes formas: import Matricula.Alumno; // importacion de la clase Alumno del paquete Matricula import Matricula.*; // importacion del paquete Matricula, incluye la clase Alumno. ATRIBUTOS Los atributos permiten guardar información de un objeto. Por ejemplo para un alumno se necesita saber la siguiente información: el nombre, los apellidos, la materia en que esta inscrito, si su horario es de mañana o de tarde, etc. La declaración de atributos se hace de la siguiente manera: enum Horario MAÑANA, TARDE //posibles horarios class Alumno String nombre; String apellidos;

int añodenacimiento; int numerocarnet; //para identificar al alumno String grupo; Horario horario=horario.mañana; METODOS Los métodos sirven para definir el comportamiento del objeto en sus interacciones con otros objetos. Siguiendo con el ejemplo del alumno, se puede solicitar su nombre, asignarle grupo, etc. enum Horario MAÑANA, TARDE //posibles horarios class Alumno String nombre; String apellidos; int añodenacimiento; int numerocarnet; //para identificar al alumno String grupo; Horario horario=horario.mañana; public String ingresagrupo()... public void imprimegrupo(string nuevogrupo)... CONSTRUCTORES. Un constructor es un procedimiento especial de una clase que es llamado automáticamente siempre que se crea un objeto de esa clase. Su función es iniciar el objeto. Alumno alumno1=new Alumno(); Esta operación invoca al constructor por defecto, que se proporciona automáticamente y tiene el mismo nombre que la clase. Una clase puede definir varios constructores con distintos tipos de argumentos, a esto se le conoce como SOBRECARGA. DESTRUCTORES Es un procedimiento especial de una clase que es llamado automáticamente siempre que se destruye un objeto de esa clase. Su función es realizar cualquier final en el momento de destruir el objeto. REFERENCIA this La palabra clave this hace referencia a los miembros de la propia clase en el objeto actual. public class MiClase int i; public MiClase() i = 10; // Este constructor establece el valor de i public MiClase( int valor ) this.i = valor; // i = valor // Este constructor también establece el valor de i public MiClase( int i ) this.i = i; public void Suma_a_i( int j )

i = i + j; HERENCIA La herencia establece una relación esun entre clases. La herencia introduce la capacidad de extender clases, donde la clase original se denomina padre (o madre), clase base o superclase, y la nueva clase denominada clase hija, derivada o subclase. Así, una clase derivada es una clase base. Por ejemplo, Alumno es una Persona. Esta relación se puede representar haciendo una clase Alumno extienda (herede) de la clase Persona. La sintaxis en Java para la extensión de clases (herencia) es la siguiente: class ClaseDerivada extends ClaseBase... en el caso de Alumno: class Alumno extends Persona... POLIMORFISMO De acuerdo con la compatibilidad ascendente, se puede asignar a una variable de una clase una referencia de cualquier objeto de la misma clase o de cualquier clase derivada de ella. Polimorfismo es la capacidad de que diferentes objetos de una misma jerarquía tengan comportamientos distintos aunque reciban el mismo mensaje. La idea detrás del polimorfismo es poder diseñar nuestro código teniendo en cuenta que todos las clases que derivan de una clase base heredan los métodos de la clase base. abstract public class Animal private String nombre; public Animal(String nombre) this.nombre = nombre; public String getnombre() return nombre; abstract public void habla(); public class Perro extends Animal public Perro(String nombre) super(nombre); public void habla() System.out.println(getNombre()+": Warf, Guau, etc."); public class Gato extends Animal public Gato(String nombre) super(nombre); public void habla() System.out.println(getNombre()+": Miau, Pffff, etc."); public class TestAnimal public static void main(string[] args) // un array de Animal Animal[] animales = new Perro("Kujo"), new Perro("Fido"), new Gato("Garfield"), new Gato("Patán") ; for( Animal a : animales)

a.habla(); // end main // end class La salida: Kujo: Warf, Guau, etc. Fido: Warf, Guau, etc. Garfield: Miau, Pffff, etc. Patán: Miau, Pffff, etc. CLASES ABSTRACTAS Las denominadas clases abstractas son las que representan el mayor grado de abstracción. De hecho, las clases abstractas presentan un nivel de "abstracción" tan elevado que no sirven para instanciar objetos de ellas. Cuándo es una clase abstracta? En cuanto uno de sus métodos no tiene implementación (en Java, el método abstracto se etiqueta con la palabra reservada abstract). Cuándo se utilizan clases abstractas? Cuando deseamos definir una abstracción que englobe objetos de distintos tipos y queremos hacer uso del polimorfismo. public abstract class Figura protected double x; protected double y; public Figura (double x, double y) this.x = x; this.y = y; public abstract double area (); public class Circulo extends Figura private double radio; public Circulo (double x, double y, double radio) super(x,y); this.radio = radio;

public double area () return Math.PI*radio*radio; public class Cuadrado extends Figura private double lado; public Cuadrado (double x, double y, double lado) super(x,y); this.lado = lado; public double area () return lado*lado; INTERFACES Las interfaces se declaran con la palabra reservada interface de manera similar a como se declaran las clases abstractas. En la declaración de una interfaz, lo único que puede aparecer son declaraciones de métodos (su nombre y signatura, sin su implementación) y definiciones de constantes simbólicas. Una interfaz no encapsula datos, sólo define cuáles son los métodos que han de implementar los objetos de aquellas clases que implementen la interfaz. Para indicar que una clase implementa una interfaz se utiliza la palabra reservada implements. La clase debe entonces implementar todos los métodos definidos por la interfaz o declararse, a su vez, como una clase abstracta (lo que no suele ser especialmente útil): abstract class SinArea implements Figura