Diagrama de clase final

A partir de los elementos anteriores, el siguiente sería el algoritmo para detallar las clases y obtener la clase que pudiera codificarse en un lenguaje de programación.

  • Definir constructores. Al menos debe haber uno sin parámetros y asignar valores por defecto. Si puedes identificarlos, incluye aquellos que requieras para facilitar la construcción de objetos comunes, por ejemplo: Triángulo (base, altura).
  • Identificación de getters. Inicialmente asume la creación de un método GET para todos los atributos, evalúa qué valor debe mostrarse y cuál debe permanecer oculto (elimina el método ET).
  • Identificación de setters. Inicialmente asume la creación de un método SET para todos los atributos, revisa las excepciones que pueden darse al asignar un valor, una vez validado se realiza la actualización del atributo. Evalúa qué atributos no deben modificarse desde la interfaz pública, si es el caso, elimina el método SET de dicho atributo (se puede quitar en los atributos de salida).
  • Identificación de métodos auxiliares no incluidos en el diseño original de la clase.
  • Determina visibilidad, alcance, tipo, sobrecarga y sobrescritura.
opciones

Visibilidad

Publico Accesible desde el exterior del objeto
Privado Sólo es accesible por los objetos de una clase. Para atributos, un buen diseño orientado a objetos requiere que todos los atributos sean privados.
Protegido Sólo es accesible por los objetos de una clase y las clases descendientes.

Alcance

Instancia Se requiere crear una instancia u objeto de la clase para poder utilizarlo.
Clase Se puede utilizar directamente con el identificador de la clase.

Tipo de dato:

Los nombres en rojo son palabras reservadas de Java, por lo que no pueden ser utilizados como identificadores de clases, atributos, métodos o variables.

Los datos numéricos pueden consultarse en la última pantalla de Sistemas de Numeración.

opciones
Normalmente se usan int para enteros y double para números de punto flotante. *String. *Integer. *Double. *Object.

Sobrecarga:

La descripción o firma de un método es la combinación de su identificador y los tipos de los parámetros o argumentos, no solo el identificador. Así, se puede declarar el constructor Triangulo() y distinguirlo de Triangulo(double,double), aunque tienen el mismo nombre se diferencian por el tipo de los argumentos.

Sobreescritura:

Cuando se establece una relación herencia de clase, la clase derivada o subclase puede sobrescribir un método de su superclase cuando define un método con las mismas características (nombre, número y tipo de argumentos) que el método de la superclase.

Observa el siguiente video para que veas la construcción de la clase detallada del Triángulo:

Escribir
Con los siguientes ejercicios verificarás si aprendiste el procedimiento para obtener las clases detalladas.

Escribe la respuesta correcta en los espacios para completar el procedimiento:

Calcula el índice de masa corporal de una persona, conociendo su peso y estatura.

Clase básica

Persona
estatura
peso
imc
calcularIMC()

Clase detallada

Persona
double estatura
double peso
double imc
Personal()
void calcularIMC()
double
getEstatura()
double getPeso()
double getIMC()
void setEstatura(value)
setEstatura( double value)
void setPeso(double value)

¿Por qué crees que el metodo calcularIMC() es privado?

Porque setPeso() y setEstatura() deben invocarlo para mantener la consistencia del objeto y correspondan en todo momento estatura, peso e imc. De hecho, puede observarse que no existe setter para imc, ya que quien lo modifica es calcularIMC().

Calcula las raíces ($x_1$ y $x_2$) de una ecuación de segundo grado de la forma $ax^2+bx+c=0$.

Clase básica

Ecuacion2oGrado
a
b
c
x1
x2
calcularRaices()

Clase detallada

Ecuacion2oGrado
double a
double b
double c
double
x1
double
x2
Ecuacion2oGrado()
void calcularRaices()
double
getA()
double getB()
double getC()
double
getX1()
double
getX2()
void setA(double value)
void setB(double value)
void setC(double value)

¿Por qué crees que no se establecen setters para x1 y x2?

Porque estos valores se asignan en el método calcularRaices.

Escribe la tabla de multiplicar de un número N.

Clase básica

TablaMultiplicar
n
mostrarTabla()

Clase detallada

TablaMultiplicar
int
int
n
TablaMultiplicar()
void
mostrarTabla()
int getN()
void
setN( int value )

A partir de la clase detallada, indica cuál sería la clase básica:

Clase detallada

Funcion
double xMin
double xMax
double area
Funcion()
void calcularArea()
double f(double x)
double getXMin()
double getXMax()
double getArea()
void setXMin(double value)
void setYMin(double value)

Clase básica

Funcion
xMin
xMax
area
f(x)
calcularArea()
Los getters (getXMin(), getXMax() y getArea()), setters (setXMin() y setXMax()) y constructores (Funcion()) no aparecen en la clase básica.