Sei sulla pagina 1di 9

Prctica 1

ANLISIS Y DISEO
ORIENTADO A OBJETOS
Catedrtico: Dra. Ana Bertha Ros Alvarado
Alumno: Hctor Eduardo Zapata Garca


Universidad Politcnica de Victoria




Tabla de contenido

Contenido
Introduccin _______________________________________________________________________ 1
Desarrollo _________________________________________________________________________ 2
Pruebas ___________________________________________________________________________ 6
Conclusiones _______________________________________________________________________ 7


Pg. 01

Prctica 1 Anlisis y Diseo Orientado a Objetos


Introduccin
Objetivo
El objetivo de esta prctica es implementar un conjunto de clases haciendo uso de los
conceptos generales del paradigma orientado a objetos. En esta prctica el lenguaje de
programacin a utilizar es Java.
Requisitos
Repaso de los conceptos del Paradigma Orientado a Objetos: abstraccin,
encapsulamiento, herencia, polimorfismo
Instalacin del Entorno de Desarrollo Integrado NetBeans (https://netbeans.org/) y el
compilador de Java (http://www.oracle.com/technetwork/java/javase/ downloads/jdk7-
downloads-1880260.html)
Descripcin
Para concretar algunas nociones bsicas de Herencia, se implementarn una serie de clases
para recorrer e imprimir series numricas. Una serie numrica es una sucesin de nmeros en
donde el valor de cada uno depende de uno o ms de los valores anteriores.
Por ejemplo, una serie aritmtica determina el nmero siguiente sumando; as, la serie
geomtrica determina el nmero siguiente multiplicando. En cualquier caso, una serie requiere
una forma de definir su primer valor y tambin una forma de identificar el valor actual.

Pg. 02

Prctica 1 Anlisis y Diseo Orientado a Objetos


Desarrollo
Se comenzar definiendo una clase,
Progression que contiene el fragmento
siguiente:




















Para la cual se definen los atributos y los mtodos de una serie numrica. En especial se
definen los atributos (enteros largos):
first: el primer valor de la serie;
cur: el valor actual de la serie;
y los tres mtodos siguientes:
firstValue(): Restablecer la serie al primer valor, y mostrar ese valor. Entrada: ninguna.
Salida: entero largo.
nextValue(): Mover la serie al siguiente valor, y mostrar ese valor. Entrada: ninguna.
Salida: entero largo.
printProgression: Reiniciar la serie e imprimir sus primeros n valores. Entrada: entero.
Salida: ninguna.

Tambin se incluye un mtodo constructor Progression(), que establece las variables de
instancia en el momento en que se crea un objeto de esta clase. La clase
Progression()pretende ser una clase padre (superclase) de la cual se heredan clases
especializadas, porlo que este constructor se deber incluir en los constructores de las
clases especializadas(subclases) que extienden a la clase Progression.

Pg. 03

Prctica 1 Anlisis y Diseo Orientado a Objetos




La clase ArithProgression define una serie en la que cada valor se determina sumando un
incremento fijo (inc), al valor anterior. Esto es, la clase define una serie aritmtica. La
clase ArithProgession hereda los campos first y cur, y los mtodos firstValue() y
printProgression(n) de la clase Progression. Se sobreescribe (por la caracterstica del
polimorfismo) el mtodo nextValue() para apegarse a la forma particular de obtener el
siguiente valor en la serie. Se agregan dos mtodos constructores, un mtodo
predeterminado (por omisin) que no tiene parmetros, y un mtodo paramtrico que
toma un parmetro entero como incremento para la progresin. Un fragmento de la clase
ArithProgression se muestra a continuacin:















Pg. 04

Prctica 1 Anlisis y Diseo Orientado a Objetos


La clase GeomProgression imprime una serie geomtrica determinada multiplicando el
valor anterior por una base b. Una serie geomtrica es como una serie genrica excepto
por la forma en que se determina el siguiente valor. En consecuencia, se declara como
subclase de la clase Progression.










La clase FibonacciProgression representa otra clase de serie, la serie de Fibonacci,
en la que el siguiente valor se define como la suma de los valores actual y anterior. En
esta clase se agrega un constructor paramtrico que permite inicializar de una forma
distinta la clase.








Pg. 05

Prctica 1 Anlisis y Diseo Orientado a Objetos


Para completar el programa, se define una clase Tester, que ejecuta una prueba sencilla
de cada una de las tres clases. En este caso la variable prog es polimrfica durante la
ejecucin del mtodo main() porque se refiere a objetos de la clase ArithProgression,
GeomProgression y FibonacciProgression, en su turno.
Ejemplo de la clase Tester:

Pg. 06

Prctica 1 Anlisis y Diseo Orientado a Objetos


Pruebas
Preguntas a responder:
1. Si se define inc = 128, Cuntas llamadas se pueden hacer al mtodo nextValue
de la clase ArithProgression para llegar a un desbordamiento?

R= 697.

2. A qu converge la serie geomtrica con base = 0.5 y valor inicial 1?

R= 1 0 0 0 0 0 0 0 0 0

3. Cmo se puede hacer el manejo de errores para evitar el desbordamiento?

R= Cambiando de tipo de dato.

4. Cul es el 12 valor de la serie de Fibonacci?

R= 144

5. Cmo se puede restringir la inicializacin de parmetros en la clase
FibonacciProgression?

R= Definiendo el prev y cur en 0 y 1 respectivamente.


Pg. 07

Prctica 1 Anlisis y Diseo Orientado a Objetos


Conclusiones
El uso de la herencia facilita mucho las cosas y cambia totalmente la vista y la manera de pensar del
programador asi como agiliza y minimiza el cdigo.

Potrebbero piacerti anche