Hola.
Aquí lo que se pide es que escribas una clase que modele lo necesario para representar una "entrada de productos".
Cuando esta empresa registra la entrada de un producto, necesita representar una serie de datos sobre cada entrada: código de producto, valor compra, cantidad, etc...
Estos datos serían los "atributos".
Luego, utilizando esos datos, ha de poder realizar una serie de cálculos, por ejemplo, cuál es el precio de compra total de cada entrada de producto (precio compra * cantidad)
Estos cálculos serían las "funcionalidades"(los métodos).
Bien, vamos a ir elaborando el UML.
Lo primero es pensar un
nombre para nuestra clase, que sea descriptivo de la entidad que va a representar. Como consiste en modelar entradas de productos, pues ese mismo puede ser su nombre.
Importante recordar que los nombres de clase comienzan con mayúscula.
Ya tenemos
nombre, veamos los
atributos.
El primero es el "código" que identifica al producto que va a entrar, así que se puede llamar
codigoProducto
En el ejemplo vemos que es un código numérico, así que su tipo podría ser int o Integer.
Sin embargo, como en principio con este código no vamos a realizar operaciones matemáticas de ningún tipo(sumas, restas...) entonces suele ser recomendable usar el tipo String.
En este caso, tanto int como String nos va a servir perfectamente, así que elige el que quieras. Yo elijo String.
El siguiente atributo es la "descripción" del producto. Su tipo será String sin duda ya que será una cadena de texto.
Seguimos con la "unidad de medida". De nuevo usaremos String, ya que será una cadena que explique cómo se mide este producto: litros, kilogramos, piezas,....
Después viene el "precio de compra" y el "precio de venta". Con estos atributos si que podemos esperar tener que hacer operaciones aritméticas así que habrá que escoger un tipo numérico. Al tratarse de precios expresados en alguna moneda que se puede fraccionar, lo mejor será usar el tipo double para ambos atributos.
Por último, la "cantidad" de producto que se registra en esta entrada. También necesitaremos representarlo con un tipo numérico y como las "unidades de medida" del producto son unidades
enteras (podemos recibir 1 litro, 2 litros.., pero no 0,5 litros) pues usaremos el tipo int.
Pues con esto, ya tenemos definidos los atributos de nuestra clase.
Importante recordar que los atributos, así como las variables, comienzan con minúscula.
Ahora vamos a ver las
funcionalidades, esto incluye constructores y métodos.
Respecto a los constructores, podemos crear tantos como podamos necesitar(o no crear ninguno). Esto ya depende de las necesidades del programa y del gusto del programador.
Lo habitual es tener al menos dos constructores:
Uno que no reciba parámetros y se ocupe de inicializar los atributos a unos valores por defecto (valor 0 para numéricos, cadena vacía para los String,...)
Otro que sí reciba los parámetros necesarios para crear un objeto y asigne esos parámetros a los correspondientes atributos.
Importante recordar que los nombres de los constructores han de coincidir con el nombre de la clase y por tanto comenzar con letra mayúscula.
Tras los constructores, pasamos a ver los métodos.
Primero, escribiremos los métodos
set/get que son casi "obligatorios" para la mayoría de clases.
Estos métodos son los que permiten asignar/modificar valores a los atributos (SET) así como obtener dichos valores (GET) para mostrar en pantalla, operar con ellos o lo que sea.
Por tanto, cada atributo tendrá asociado un método GET y otro método SET.
Los métodos SET, por lo general, no van a retornar ningún valor así que su tipo será
void. Pero sí han de recibir al menos un parámetro como argumento, que será el valor que se ha de asignar al correspondiente atributo. Por ejemplo:
Los métodos GET, por lo general, no van a necesitar recibir ningún parámetro(puede haber excepciones). Pero sí han de retornar siempre un valor, así que su tipo dependerá del atributo al que está asociado.. Por ejemplo:
Tras definir los constructores y los
get/set, ahora hay que pensar si aún se necesitan definir más funcionalidades.
El enunciado dice que por cada entrada de producto, tenemos que poder hacer tres cálculos:
-precio compra total --> (precioCompra * cantidad)
-precio venta total --> (precioVenta * cantidad)
-ganancia --> (precioVentaTotal - precioCompraTotal)
En estos tres métodos, vamos a estar calculando importes monetarios que son fraccionables, así que usaremos el tipo double para todos ellos.
Y, aunque no pertenecen a los GET "obligatorios", también se ocupan de proporcionarnos un valor así que podemos comenzar su nombre usando el prefijo "get-". Esto no es ninguna norma, en realidad podemos elegir el nombre que nos de la gana.
La única norma a contemplar es que los nombre de todos los métodos han de comenzar con minúscula:
Pues teniendo ya el diseño UML de nuestra clase, podemos pasar a codificarla en Java.
Podemos también escribir un pequeño programa para poner a prueba nuestra clase:
Y eso es todo. Si hay algo que no explicado bien, o que no se entiende, o lo que sea..., no dudes en preguntar.
En cualquier asegúrate de comprender todo el proceso que hemos seguido.
Un saludo.