1 POO Conceptos Basicos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 30

PROGRAMACION ORIENTADA A

OBJETOS
Conceptos Básicos

Profesor
Orlando Arboleda Molina
(Uso exclusivo de docentes)*
PROGRAMACION ORIENTADA A OBJETOS (POO)

• Es un paradigma de programación que usa objetos y sus interacciones, para


diseñar aplicaciones y programas informáticos. Está basado en varias técnicas,
incluyendo herencia, abstracción, polimorfismo y encapsulamiento. (Wikipedia)

• Object-oriented programming is a method of programming based on a hierarchy of


classes, and well-defined and cooperating objects. (Oracle-Sun)
Clases
Una clase, define un conjunto de elementos que tienen características (atributos) y
comportamientos (métodos) comunes.
Clases
Objeto

• Son instancias (o casos) particulares de las clases.


• Todo objeto tiene los mismos atributos y métodos que la clase que lo define.
• Un objeto da valores particulares a los atributos de la clase.
Modelado de Clases

• The Unified Modeling Language (UML) is a language for specifying, visualizing,


constructing, and documenting the artifacts of software systems, as well as for
business modeling and other non-software systems. The UML represents a
collection of the best engineering practices that have proven successful in the
modeling of large and complex system. (ISO/IEC 19501:2005 - Unified Modeling
Language Specification Version 1.4.2)
• El Lenguaje Unificado de Modelado (UML), lenguaje estándar de modelado para
desarrollo de sistemas y de software.
• Se aplica en la representación y modelado de la información que se utiliza en las
fases de análisis y diseño.
Modelado de Clases

• Nombre: se escribe en singular y debe representar claramente a la clase.


• Atributos: se escriben en singular. Se deben indicar su tipo de dato y visibilidad.

• Método: se escriben con un verbo en infinitivo (ej. calcularXX, obtenerYY, etc). Se


debe indicar su visibilidad y tipo de dato de salida (igual para los parámetros).
No se le deben suministrar como parámetros, los atributos, ni otros métodos.
Ejemplo:
Implementación en Java

• Se debe implementar cada clase en un su propio archivo java.


• Para implementar cada clase en java, basta con ir generando instrucciones validas
en el lenguaje, teniendo la precaución de indicar primero el tipo de dato y luego el
identificador (al contrario que en clase)

Ejemplo:
Ejercicio Inicial

Los estudiantes de una Tecnología, los cuales son identificados por su código (valor
superior a 21000) y nombre, deben cursar las asignaturas: Desarrollo (que corresponde
a Software y Hardware) y Matemática, las cuales tienen respectivamente los siguientes
porcentajes, para calcular su definitiva: 60% y 40%.

Realizar el análisis, diseño utilizando el paradigma POO (diagrama de clases y


flujogramas de los métodos) e implementación en lenguaje Java de un aplicativo que
permita registrar la información de N estudiantes y después desplegar la información
de cada estudiante de tecnología, el valor obtenido al calcular su definitiva y el valor
obtenido por su aprobación (puede ser "NO APRUEBA" o "SI APRUEBA", dependiendo
respectivamente que su nota definitiva sea menor a 3.5 o no).
Diseño AyP – con programación estructurada y modular
Diseño POO - Ejercicio Inicial – Diagrama de Clase

1. ¿ La información manipulada es de que tipo de objetos ?


R:// EstudianteTecnología, por lo tanto es necesario crear dicha clase.

2. ¿ Cual es la información solicitada de los EstudianteTecnología ?


R:// Toda la leída en el flujograma anterior. Serán los atributos.

3. ¿ Que se les debe calcular/obtener de los EstudianteTecnología ?


R:// Todo lo desplegado en el flujograma que no son atributos. Serán los métodos.

4. ¿ El método/flujograma principal, es un método de la clase EstudianteTecnología ?


R:// No, ningún objeto de esta clase tiene dicha responsabilidad. Es obligatorio otra
clase denominada UsaEstudianteTecnología que tenga el método principal.

5. ¿ Como se define la lógica de los métodos ?


R:// Usando flujogramas, tal como se hacia en AyP.
Diseño POO - Ejercicio Inicial – Diagrama de Clase

6. ¿ Como al almacenar los objetos de la clase EstudianteTecnología, para luego


realizar reportes ?
R:// Almacenando cada objeto en un arreglo. Como se aplica el paradigma POO, el
arreglo será de objetos EstudianteTecnología.

7. ¿ Como se indican los arreglos en el diseño e implementación ?


R:// En el diagrama de clase, se aplica el formato: nombre:TipoDato[]
En el flujograma, se aplica el formato: nombre[]:arreglo[tamaño]
En Java, se aplica el formato: TipoDato[] nombre=new TipoDato[tamaño];

Ejemplo: Si fuera necesario un arreglo de objetos EstudianteTecnología


En el diagrama de clase, sería: info[]:EstudianteTecnología[]
En el flujograma, sería: info[]:arreglo[tamaño]
Para crear un arreglo en Java para almacenar N objetos, sería:
EstudiantePOO[] info=new EstudianteTecnología[N];
Diseño POO - Ejercicio Inicial – Diagrama de Clase
Diseño POO - Ejercicio Inicial – Flujogramas

A diferencia de los flujogramas construidos en AyP, en los flujogramas para los métodos
de nuestras clases, no se le deben suministrar como parámetros, los atributos, ni otros
métodos.
Diseño POO - Ejercicio Inicial – Flujogramas

A diferencia de los flujogramas construidos en AyP, en los de POO, no se le deben


suministrar como parámetros, los atributos, ni otros métodos de la misma clase.
Diseño POO - Ejercicio Inicial – Flujogramas

Se suministra el flujograma de la solución usando POO (al lado izquiedo) y se recuerda


el flujograma de la solución usando los conceptos de AyP (al lado derecho).
Ejercicios - Ejercicio Inicial

1. Realizar la lectura de la guía 1_1_POO_java.pdf.


2. Realizar la Practica Ejercicio Inicial, que tiene como finalidad la construcción de la
solución informática para el ejercicio inicial. Recuerde que:
a) Es necesario crear un archivo java por cada clase presente en el diagrama de
clase.
b) Se debe mapear en cada clase, los atributos y métodos definidos en el
diagrama de clase.
Ejemplo: Se muestra la implementación de uno de los métodos
Métodos especiales
Constructor

• No es considerado como un método.


• Se ejecuta cuando se instancian (crean) objetos de la clase. Su propósito es asignar
valores iniciales a los atributos, aunque puede contener otras instrucciones.
• En JAVA deben tener el mismo nombre de la clase y no tiene tipo de retorno.

Ejemplo: Se indica el constructor de la clase EstudianteTecnología tanto en el diseño


como en la implementación en Java

• En la implementación se usa el apuntador this para hacer referencia a los atributos


de la clase, porque tienen menor precedencia que los parámetros.
Getters

Las buenas prácticas indican que los atributos deben ser privados.

Un método getter permite recuperar el valor del atributo correspondiente. No recibe


parámetros y debe retornar un dato del mismo tipo del atributo.

Ejemplo: Se indican los métodos getters de la clase EstudianteTecnología tanto en el


diseño como en la implementación en Java
Setters

Un método setter permite modificar el valor del atributo correspondiente. Recibe un


parámetro del mismo tipo de dato del atributo y no retorna nada.

Ejemplo: Se indican los métodos setters de la clase EstudianteTecnología tanto en el


diseño como en la implementación en Java
ToString

El método toString permite obtener una cadena con la información de todos sus
atributos. No recibe ningún parámetro y siempre retorna un String.

Ejemplo: Se indica el método toString de la clase EstudianteTecnología tanto en el


diseño como en la implementación en Java
Métodos Especiales

En un buen diagrama de clase deben existir además de los métodos requeridos para
satisfacer las funcionalidades, al menos un método constructor, un método toString y
cada uno de los métodos getters y setters.

Ejemplo: Se indica el diagrama completo de la clase EstudianteTecnología y una


versión compacta en la que se indican la existencia de los métodos en una nota.
Modificación Ejercicio Inicial

Modificar el diseño del ejercicio inicial, para que adicional al reporte ya solicitado,
también:
1. Despliegue el código, nombre y nota definitiva, de los estudiantes de tecnologías,
cuya definitiva es superior a una notaLimite entre 0.0 y 4.9 solicitada al usuario.
2. Lea una cifra entre 0.0 y 0.5 e incrementar la nota de desarrollo de cada alumno
en dicha cifra o la mayor cantidad inferior, que no permita que se incremente la
nota de desarrollo en un valor superior a 5.0.

Idea: las nuevas funcionalidades, serán realizadas por métodos, cuya entrada será una
estructura de datos de los objetos creados en el aplicativo (y si es necesario otros
parámetros) y como salida un tipo de dato acorde a la funcionalidad (o void si no tiene).
Diseño POO – Modificación Ejercicio Inicial – Diagrama de Clase
Diseño POO – Modificación Ejercicio Inicial – Flujogramas
Diseño POO – Modificación Ejercicio Inicial – Flujogramas

Se presentan 2 versiones del flujograma para el método filtrarDefinitivaMayorA


Diseño POO – Modificación Ejercicio Inicial – Flujogramas
Ejercicio de Implementación

1. Realizar la Practica Modificación Ejercicio Inicial.

2. Incluir las validaciones correspondientes.


BUEN VIENTO Y BUENA MAR !!!

También podría gustarte