Programación Orientada a Objetos con Java

Documentos relacionados
! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes

! Fundamentos de la POO. ! Comportamiento y estado. ! Clases y objetos en Java

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

RELACIÒN ENTRE LA PROGRAMACIÒN ORIENTADA A OBJETOS Y LA ESTRUCTURADA

Tema 6: Clases. Índice

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

Guía práctica de estudio 07: Herencia

Programación orientada a objetos I

Práctica 2. Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones

o Una clase es un tipo al cual pertenecen objetos o instancias de la clase.

IMPLEMENTACIÓN DE CONCEPTOS P.O.O. EN JAVA

Programación Orientada o Objetos

Capítulo 3. Introducción a la programación. Continuar

Programación Orientada a Objetos con Java

HOJA DE EJERCICIOS 5 PROGRAMACIÓN CON EXCEPCIONES EN JAVA

class identificador{ //Bloque de propiedades (datos miembro, atributos, propiedades) //Bloque de métodos (comportamientos) }

TECNICAS DE PROGRAMACION Universidad Católica Los Angeles de Chimbote MODIFICADORES DE ACCESO A LOS MIEMBROS DE UNA CLASE

Clases y Objetos en C++

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

UAA-DSE Programación 2 / C++ Eduardo Serna-Pérez

Conceptos Básicos. Programación Orientada a Objetos 2

Introducción a Java. Fernando Cerezal López. 24 Noviembre 2005

Introducción y conceptos de POO

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

1. Conceptos básicos de POO 1

12. Tipos de atributos

Unidad Didáctica 5: Introducción a la Programación Orientada a Objetos

18. Interfaces Declaración de una interfaz

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

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

Tema 7: Polimorfismo. Índice

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

Programación M.I. Gerardo Avilés Rosas Tercer Examen Parcial

Programación Orientada a Objetos

10 -Herencia Y Polimorfismo. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Tema: Funciones Virtuales y Polimorfismo.

Curso de PHP. Pascual Gómez del Pino Página 1

acceso Implementación de conceptos P.O.O. en Java Orientada a Objetos 2. Modificadores de en Java Temario

Introducción a OOP. Programación Orientada a Objeto

SUBPROGRAMAS. Los subprogramas pueden ser invocados varias veces desde diferentes partes del programa.

Concurso: Cuánto sabes de JAVA?

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Definición. Mónica E. García García Feb 07

Lección 2: Creando una Aplicación en Java. 1. Estructura del archivo de una clase. 3. Definiendo clases fundamentos

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

Clase 3: Repaso POO. DSIW1:Ing. Tomás Eduardo Urbina 1

CLASE 9 -HERENCIA Y POLIMORFISMO

HOJA DE EJERCICIOS 4 INTERFACES Y CLASES ABSTRACTAS EN JAVA Y C++

Unidad Didáctica 1. Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

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

En Java, un arreglo es un grupo de variables (llamados elementos o componentes) que contienen valores, todos del mismo tipo.

FACULTAD DE INGENIERÍA

Programación orientada a objetos

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Pasos requeridos para establecer el manejo de eventos para un componente de GUI.

Programación orientada a objetos (I)

Tipos Recursivos de Datos

Tema 1. Introducción a la Programación Orientada a Objetos

Estructuras de control selectivas

Bloque II. Elementos del lenguaje de programación Java

Examen Teórico. Convocatoria de Julio de 2015

Bloque II. Elementos del lenguaje de programación Java

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

TEMA 3:Programación con Clases y Objetos.

PROGRAMACIÓN ORIETADA A OBJETOS

POO: Clases y objetos

Programación Orientada a Objetos

Tema: Punteros.Puntero this en C#.

ALGORITMICA Y PROGRAMACION POR OBJETOS I

Informática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.

A3F. Objetos (uso) Carlos Fontela

FACULTAD DE INGENIERÍA

Programación Orientada a Objetos

PNFSI. Asignatura: Desarrollo de Software. Tema 1: Programación Orientada a Objetos

Tema 3. Herencia. Programación Avanzada. Jorge Badenas

Estructura de datos y Programación

HERENCIA Y TIPOS. Articulo. Video Audio Altavoces. Amplificador

Transcripción:

Programación Orientada a Objetos con Java M.C. Jorge Eduardo Ibarra Esquer jorgeeie@uabc.mx Diseño orientado a objetos El diseño orientado a objetos surge de la idea de traspasar a los sistemas de software, la organización y el funcionamiento de los sistemas reales complejos La organización de los sistemas de software en objetos refleja el análisis de la jerarquía estructural (en la disposición de los objetos) y de la jerarquía de tipos (en la organización de las clases de objetos) de los sistemas reales complejos. 1

Diseño orientado a objetos Esta organización es más fácil de mantener, es más versátil y adaptable a nuevas necesidades del mismo sistema y además permite la reutilización de las clases de objetos por otros sistemas. Paradigmas de la programación Los lenguajes de programación consisten de dos elementos: código y datos Los programas pueden organizarse conceptualmente en torno a su código o en torno a sus datos 2

Paradigmas de la programación En torno al código: Modelo orientado al proceso Qué está ocurriendo? Código: serie de pasos lineales Código que actúa sobre los datos Los programas pueden volverse problemáticos a medida que se hacen más largos y complejos. Paradigmas de la programación En torno a los datos: Quién está siendo afectado? Programación orientada a objetos Los programas se organizan alrededor de los datos (objetos) y de interfaces para interactuar con ellos Conjunto de datos que controlan el acceso al código 3

Programación Orientada a Objetos Se dice que la POO es más natural que la programación tradicional. Permite organizar la información de una manera que nos resulta más familiar Refleja las técnicas de la naturaleza para abordar la complejidad Abstracción Es un elemento esencial de la POO Comúnmente utilizamos la abstracción para abordar la complejidad. Por ejemplo, un automóvil que está compuesto por varios sistemas. Se aplica mediante clasificaciones jerárquicas 4

Abstracción Las abstracciones jerárquicas de sistemas complejos, se pueden aplicar a los programas de computadora Los datos se pueden transformar mediante la abstracción en objetos Cada objeto describe su comportamiento Los objetos se pueden tratar como entidades que responden a mensajes que les ordenan hacer algo Principios de la POO Encapsulado Mecanismo que permite unir el código junto con los datos que manipula, manteniendo a ambos a salvo de interferencias exteriores El acceso al código y los datos es controlado por una interfaz La base del encapsulado es la clase 5

Principios de la POO Herencia Es el proceso mediante el cual un objeto adquiere las propiedades de otro Mediante la herencia, un objeto sólo necesita definir aquellas cualidades que lo hacen único en su clase Principios de la POO Polimorfismo Permite que una interfaz sea utilizada por una clase general de acciones Es la propiedad que tienen algunas operaciones de tener un comportamiento diferente dependiendo del tipo de dato sobre el que se aplican Capacidad del código de un programa para ser utilizado con diferentes tipos de datos 6

Clases y objetos Una clase define la estructura y comportamiento (datos y código) que serán compartidos por un conjunto de objetos Una clase define un nuevo tipo de dato a partir del cual se pueden crear nuevos objetos Cada objeto de una determinada clase contiene la estructura y comportamiento definidos por la clase Clases y objetos Una clase es una construcción lógica, mientras que un objeto tiene una realidad física Una clase especifica métodos (funciones) y atributos (variables) Un objeto es una instancia específica de una clase 7

Composición Las variables que contienen los objetos pueden utilizarse de dos formas diferentes: Almacenar valores de datos Contener referencias a otros objetos Los objetos que contienen otros objetos se llaman objetos compuestos. Los objetos compuestos son importantes debido a que permiten representar estructuras mucho más complejas que los objetos sencillos. P. ej.: Un avión está compuesto por el tren de aterrizaje, las alas, la cabina y otros objetos que son demasiado complejos para ser representados como simples números o texto. 8

Clases en Java Las clases son la parte central de Java Una clase define un nuevo tipo de dato que puede utilizarse para crear objetos de ese mismo tipo o clase Al definir una clase, se especifican los datos que contiene y el código que opera sobre los mismos Clases en Java La forma general de una clase es: class nombredelaclase { tipo variable1; tipo variable2; tipo variablen; Una clase se declara mediante la palabra clave class tipo nombremétodo1(lista de parámetros){ //Cuerpo del método tipo nombremétodon(lista de parámetros){ //Cuerpo del método 9

Una clase para empezar Se definirá una clase para representar un pizarrón Nombre: Pizarron Atributos: material String color String ancho double alto double La clase Pizarron La clase debe guardarse en un archivo con el nombre Pizarron.java public class Pizarron { String color; String material; double ancho; double alto; 10

Crear objetos de una clase Una vez definida la clase, podemos crear objetos de ese tipo desde otras clases o programas Para crear objetos, se utiliza el operador new, de la siguiente forma: Pizarron p=new Pizarron(); La variable p representará una instancia de Pizarron Crear objetos de una clase Pizarron p; null p p=new Pizarron(); p color material ancho alto 11

Acceso a los atributos de la clase Por medio del operador. se hace referencia a los atributos definidos por la clase: p.color= Verde ; System.out.println( Color: +p.color); Un programa que utiliza la clase Pizarron public class PruebaPizarron { public static void main(string[] args) { Pizarron p=new Pizarron(); p.alto=1.35; p.ancho=3.23; p.color="verde"; p.material="madera"; System.out.printf("Pizarrón %s de %s que mide %4.2f x %4.2f\n", p.color,p.material,p.ancho,p.alto); 12

Variables de referencia a objetos Analicemos el siguiente código: Pizarron pz1,pz2; pz1=new Pizarron(); pz2=pz1; pz1.ancho=4.25; pz2.ancho=5.40; pz1 y pz2 hacen referencia al mismo objeto System.out.println( El ancho del pizarron 1 es: +pz1.ancho); System.out.println( El ancho del pizarron 2 es: +pz2.ancho); Cuál será la salida generada por este fragmento de código? Variables de referencia a objetos Pizarron pz1,pz2,pz3; pz1=new Pizarron(); pz2=new Pizarron(); pz3=pz1; pz1.ancho=4.25; pz2.ancho=5.40; pz1=pz2; Una asignación posterior de pz1 no afecta al objeto que referenciaba con anterioridad System.out.println( El ancho del pizarron 1 es: +pz1.ancho); System.out.println( El ancho del pizarron 2 es: +pz2.ancho); System.out.println( El ancho del pizarron 3 es: +pz3.ancho); Cuál será la salida generada por este fragmento de código? 13

Variables de referencia a objetos Cuando una variable de referencia a un objeto se asigna a otra, no se crea una copia del objeto, sino una copia de la referencia Métodos Las clases están formadas por atributos (variables de instancia) y métodos Un método se define por el tipo de datos que regresa, su nombre y los parámetros que recibe: tipo nombre(lista de parámetros) { cuerpo del método tipo especifica el tipo de dato que devuelve el método La lista de parámetros es una sucesión de pares de tipo e identificador separados por comas 14

Agregar métodos a la clase Pizarron Algunas acciones que se realizan con un pizarrón son escribir, borrar y leer Agregamos tres métodos que nos permitan realizar dichas acciones: void escribir(string texto) void borrar() String leer() Agregar métodos a la clase Pizarron De la misma forma, podemos agregar un atributo que mantenga el texto que se escribe en el pizarrón String texto De los métodos definidos, encontramos que uno de ellos recibe un parámetro y otro regresa un valor 15

Métodos con parámetros Los métodos que reciben parámetros permiten que su funcionalidad resulte diferente cada vez que son llamados con parámetros distintos El método escribir(string texto) recibirá el texto a escribir en el pizarrón (o en la variable que contiene el texto escrito en el pizarrón) El método escribir(string texto) String texto; void escribir(string texto) { texto=texto; La asignación texto=texto podría resultar confusa La palabra clave this String texto; void escribir(string texto) { this.texto=texto; La palabra this puede utilizarse dentro de cualquier método para referirse al objeto actual 16

Métodos que regresan un valor En algunas ocasiones, será necesario que algún valor generado por un método de una clase se asigne a una variable para ser utilizado de manera posterior Para ésto, los métodos tienen la opción de regresar un valor al terminar se ejecución, valiéndose de la palabra clave return El tipo de datos que regresa el método debe ser igual al indicado en su declaración El método String leer( ) String leer() { return texto; Este método simplemente regresa el valor de la variable texto Pizarron p=new Pizarron();. System.out.println( El texto en el pizarrón es: +p.leer()); 17

Constructores Por lo general, resulta más sencillo inicializar las variables de un objeto al momento de crearlo. Esto se hace mediante un constructor Un constructor inicializa un objeto inmediatamente después de su creación El constructor es un método con el mismo nombre de la clase, que es llamado con el operador new Constructores A diferencia de otros métodos, los constructores no regresan ningún tipo de datos, aunque implícitamente regresan un objeto de su clase /* Constructor de la clase Pizarron */ Pizarron() { material= madera ; color= verde ; ancho=3.00; alto=2.00; texto= ; 18

Constructores Los constructores pueden recibir parámetros, de manera que podamos decidir la forma específica en la que se inicializa un objeto /* Constructor con parámetros de la clase Pizarron */ Pizarron(String material, String color, double ancho, double alto, String texto) { this.material=material; this.color=color; this.ancho=ancho; this.alto=alto; this.texto=texto; 19