elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Crear ArrayList a partir de una clase
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear ArrayList a partir de una clase  (Leído 6,154 veces)
MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Crear ArrayList a partir de una clase
« en: 1 Junio 2019, 14:41 pm »

Buenas, tengo un problema, tengo un ejercicio el cual me pide hace 3 clases diferentes (En este caso, electrodomestico - lavadora - television) , ademas de tener una clase constante (En este caso K ) , bueno mi problema radica en que tengo que crear una 4ta clase la cual contenga un ArrayList con los atributos de Electrodomesticos (Al menos, ya con saber hacer ese puedo hacer los demas).

Código
  1. public class Electrodomestico { //La ya mencionada clase "Electrodomestico"
  2. protected static final int PrecioFinal = 0; //Sus atributos
  3. static int precio = K.precio;
  4. static String color = K.color;
  5. static char consumo = K.consumo;
  6. static int peso = K.peso;
  7.  
  8. public Electrodomestico () { //Constructor por defecto
  9.  
  10. }
  11. public Electrodomestico (int precio, int peso) { //Constructor con atributo precio y
  12.                                                                               peso
  13. this.precio = precio;
  14. this.peso = peso;
  15. }
  16. public Electrodomestico (int precio, String color, char consumo, int peso) {
  17.                                                                         //Constructor con todos los atributos
  18. this.precio = PrecioFinal(precio, consumo, peso);
  19. this.color = color;
  20. this.consumo = ConsultaConEng(consumo);
  21. this.peso = peso;
  22. }
  23. public static int getPrecio() {  // Getters
  24. return precio;
  25. }
  26. public static String getColor() {
  27. return color;
  28. }
  29. public static char getConsumo() {
  30. return consumo;
  31. }
  32. public static int getPeso() {
  33. return peso;
  34. }
  35. public static char ConsultaConEng (char ConsumoEng) { //Metodos para comparar
  36. if (ConsumoEng<'A' || ConsumoEng>'F') {
  37. ConsumoEng = 'F';
  38. }
  39. return ConsumoEng;
  40. }
  41. public static int PrecioFinal (int ConsultaPrecio, char ConsumoEng, int Peso) {
  42. int ValorLetra =0;
  43. int ValorPeso =0;
  44. if (ConsumoEng == 'A') {
  45. ValorLetra = 100;
  46. } if (ConsumoEng == 'B') {
  47. ValorLetra = 80;
  48.  } if (ConsumoEng == 'C') {
  49.  ValorLetra = 60;
  50.    } if (ConsumoEng == 'D') {
  51.     ValorLetra = 50;
  52.      } if (ConsumoEng == 'E') {
  53.     ValorLetra = 30;
  54.        } if (ConsumoEng == 'F') {
  55.         ValorLetra = 10;
  56.          }
  57. if (Peso>0 && Peso<20) {
  58. ValorPeso = 10;
  59. } if (Peso>=20 && Peso<50) {
  60. ValorPeso = 50;
  61.  } if (Peso>=50 && Peso<80 ) {
  62.  ValorPeso = 80;
  63.    } if (Peso>=80) {
  64.     ValorPeso= 100;
  65.    }
  66.  
  67.   ConsultaPrecio = ValorPeso + ValorLetra;
  68.  
  69. return ConsultaPrecio;
  70. }
  71.  
  72. }
  73.  

Cito la letra del ejercicio  (ACLARO: NO QUIERO QUE ME RESUELVAN EL EJERCICIO, SINO QUE ME DEN UNA AYUDA DE COMO SEGUIR ESTO.) :
Ahora crea una clase ejecutable que realice lo siguiente:
 Crea un array de Electrodomesticos de 10 posiciones.
 Asigna a cada posición un objeto de las clases anteriores con los valores que desees.
 Ahora, recorre este array y ejecuta el método precioFinal().
Por ejemplo, si tenemos un Electrodomestico con un precio final de 300, una lavadora de 200 y una televisión
de 500, el resultado final será de 1000 (300+200+500) para electrodomésticos, 200 para lavadora y 500 para
televisión.

Código
  1. import java.util.ArrayList;  //Esto es lo que tengo hasta ahora sobre la clase ejecutable
  2. public class Ejecutable {
  3. static ArrayList <Electrodomestico> Electrodomesticos = new ArrayList <>();
  4. public static void main (String [] args) {
  5. Ejecutable E1 = new Ejecutable ();
  6.  
  7. }
  8. }
  9.  


Si me pudieran ayudar a como seguir se los agradeceria.

PD: lo vuelvo a repetir por las dudas  NO QUIERO QUE ME TERMINEN EL EJERCICIO SINO UN EMPUJON DE COMO SEGUIRLO O EN QUE ME PUDE HABER EQUIVOCADO, gracias


En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Crear ArrayList a partir de una clase
« Respuesta #1 en: 1 Junio 2019, 15:39 pm »

Hola que tal ?

Por lo que veo no nombras la parte de herencia aquí tanto  lavadora - televisión, son electrodomésticos también, que podrías heredar de una superClase llamada Electrodoméstico, de la cual crearas el ArrayList o mejor List<E> de 10 posiciones para procesarla de manera polimorfica debido a esto

* Asigna a cada posición un objeto de las clases anteriores con los valores que desees.

indicando que los electrodomesticos deberán sobreescribir al metodo precioFinal(), previamente implementando de una interface, o heredando una claseBase, y/o claseBaseAbstracta

Usa nomenclatura camelCase, para nombre de Clases, variables,parámetros, métodos.
 * Nombre de clases primera letra en Mayúscula
 * Variables, métodos, parametros primera letra en minúscula

 


« Última modificación: 1 Junio 2019, 15:53 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Crear ArrayList a partir de una clase
« Respuesta #2 en: 1 Junio 2019, 15:48 pm »

Aun no entiendo muy bien el tema de la superclase y subclases (Mi profesor enseña por la mitad todo y deja muchas cosas en duda) , lo que hice yo o por lo que pude entender y hice fue crear 2 clases aparte llamadas lavadora y television, las cuales tienen atributos de Electrodomestico.
Código
  1. public class Lavadora {
  2. static int carga = K.carga;
  3. static int precio = K.precio;
  4. static String color = K.color;
  5. static char consumo = K.consumo;
  6. static int peso = K.peso;
  7.  
  8. public Lavadora () {
  9.  
  10. }
  11. public Lavadora (int precio, int peso) {
  12. this.precio = PrecioFinal(precio, peso);
  13. this.peso = peso;
  14. }
  15. public Lavadora (int carga, int precio, String color, char consumo, int peso) {
  16. this.precio = PrecioFinal(precio,peso);
  17. this.carga = carga;
  18. this.color = color;
  19. this.consumo = Electrodomestico.ConsultaConEng (consumo);
  20. this.peso = peso;
  21. }
  22. public static int getCarga() {
  23. return carga;
  24. }
  25. public int PrecioFinal (int PrecioF, int carga) {
  26. int ValorCarga =0;
  27. int ValFin = 0;
  28. if (carga>=30) {
  29. ValorCarga = 30;
  30. }
  31. ValFin = ValorCarga + Electrodomestico.PrecioFinal;
  32. return PrecioFinal(ValFin, ValorCarga);
  33. }
  34.  
  35. }

Código
  1. public class Television {
  2. static int resolucion = K.resolucion;
  3. static boolean TDT = K.TDT;
  4. static int precio = K.precio;
  5. static String color = K.color;
  6. static char consumo = K.consumo;
  7. static int peso = K.peso;
  8.  
  9. public Television () {
  10.  
  11. }
  12.  
  13. public Television (int precio, int peso) {
  14. this.precio = PrecioFinal(precio, resolucion, TDT);
  15. this.peso = peso;
  16.  
  17. }
  18. public Television (int resolucion, boolean TDT, int precio,
  19. String color, char consumo, int peso) {
  20. this.resolucion = resolucion;
  21. this.TDT = TDT;
  22. this.precio = PrecioFinal(precio, resolucion, TDT);
  23. this.color = color;
  24. this.consumo = consumo;
  25. this.peso = peso;
  26.  
  27. }
  28.  
  29. public static int getResolucion() {
  30. return resolucion;
  31. }
  32.  
  33. public static boolean isTDT() {
  34. return TDT;
  35. }
  36.  
  37. public int PrecioFinal (int PrecioF, int resolucion, boolean TDT) {
  38. boolean tiene = TDT;
  39. int ValFin = 0;
  40. int ValResol = precio;
  41. int ValTDT = 50;
  42. int Porcentaje = (ValResol/100) * 30;
  43. if (resolucion>=40 && tiene == true ) {
  44. ValFin = ValResol + Porcentaje + ValTDT;
  45. } else {
  46.      if (resolucion>=40) {
  47.      ValFin= ValResol + Porcentaje;
  48.      }
  49.  }
  50. return PrecioFinal (PrecioF, resolucion, TDT);
  51.  
  52. }
  53. }
  54.  


Estos dos son las clases que mencione.
Por otra parte entiendo lo de la nomenclatura a veces lo salteo un poco (Perdon por eso, despues lo corrijo) , lo que no comprendo muy bien es y cito : "ArrayList o mejor List<E> de 10 posiciones para procesarla de manera polimorfica"

No soy TAN nuevo en esto, pero si me resulta a veces un poco complicado entender ciertas cosas, si podes ser mas especifico y general te lo agradeceria un monton  ;D ;D
En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Crear ArrayList a partir de una clase
« Respuesta #3 en: 1 Junio 2019, 15:55 pm »

Te hablo de Herencia por casualidad tu profesor ? pasa el enunciado completo.

Tan simple como esto.

Código
  1. import java.util.List;
  2. import java.util.ArrayList;
  3.  
  4. final List<Electrodomestico> electrodomentiscoList = new ArrayList<>();
  5.  
  6. electrodomentiscoList.add(new Televisor()); //setear configuracion
  7. electrodomentiscoList.add(new Lavadora);  //setear configuracion
  8.  
  9.  

electrodomentiscoList, usar bucle for para invocar a precioFinal()  de cada electrodoméstico, pero para eso, lo mas correcto es herencia

« Última modificación: 1 Junio 2019, 15:59 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Crear ArrayList a partir de una clase
« Respuesta #4 en: 1 Junio 2019, 15:59 pm »

Por lo que el mismo dijo se supone que si, pero como te dije antes, el habla de dar temas y despues la clase entera no entiende nada.
La letra completa del ejercicio esta en PDF , si quieres podemos conversar por Discord.

PD: Que es "List" ? 
En línea

MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Crear ArrayList a partir de una clase
« Respuesta #5 en: 1 Junio 2019, 16:01 pm »

Crearemos una superclase llamada Electrodomestico con las siguientes características:
 Sus atributos son precio base, color, consumo energético (letras entre A y F) y peso. Indica que se
podrán heredar.
 Por defecto, el color será blanco, el consumo energético será F, el precioBase es de 100 € y el peso de 5
kg. Usa constantes para ello.
 Los constructores que se implementaran serán
o Un constructor por defecto.
o Un constructor con el precio y peso. El resto por defecto.
o Un constructor con todos los atributos.
 Los métodos que implementara serán:
o Métodos get de todos los atributos.
o comprobarConsumoEnergetico(char letra): comprueba que la letra es correcta, sino es correcta
usara la letra por defecto. Se invocara al crear el objeto y no será visible.
o precioFinal(): según el consumo energético, aumentara su precio, y según su tamaño, también.
Esta es la lista de precios:
Letra Precio
A 100 €
B 80 €
C 60 €
D 50 €
E 30 €
F 10 €
Crearemos una subclase llamada Lavadora con las siguientes características:
 Su atributo es carga, además de los atributos heredados.
Tamaño Precio
Entre 0 y 19 kg 10 €
Entre 20 y 49 kg 50 €
Entre 50 y 79 kg 80 €
Mayor que 80 kg 100 €
ESI – CETP PROGRAMACION II 2019
 Por defecto, la carga es de 5 kg. Usa una constante para ello.
 Los constructores que se implementaran serán:
o Un constructor por defecto.
o Un constructor con el precio y peso. El resto por defecto.
o Un constructor con la carga y el resto de atributos heredados. Recuerda que debes llamar al
constructor de la clase padre.
 Los métodos que se implementara serán:
o Método get de carga.
o precioFinal():, si tiene una carga mayor de 30 kg, aumentara el precio 50 €, sino es así no se
incrementara el precio. Llama al método padre y añade el código necesario. Recuerda que las
condiciones que hemos visto en la clase Electrodomestico también deben afectar al precio.
Crearemos una subclase llamada Television con las siguientes características:
 Sus atributos son resolución (en pulgadas) y sintonizador TDT (booleano), además de los atributos
heredados.
 Por defecto, la resolución será de 20 pulgadas y el sintonizador será false.
 Los constructores que se implementaran serán:
o Un constructor por defecto.
o Un constructor con el precio y peso. El resto por defecto.
o Un constructor con la resolución, sintonizador TDT y el resto de atributos heredados. Recuerda
que debes llamar al constructor de la clase padre.
 Los métodos que se implementara serán:
o Método get de resolución y sintonizador TDT.
o precioFinal(): si tiene una resolución mayor de 40 pulgadas, se incrementara el precio un 30% y
si tiene un sintonizador TDT incorporado, aumentara 50 €. Recuerda que las condiciones que
hemos visto en la clase Electrodomestico también deben afectar al precio.
Ahora crea una clase ejecutable que realice lo siguiente:
 Crea un array de Electrodomesticos de 10 posiciones.
 Asigna a cada posición un objeto de las clases anteriores con los valores que desees.
 Ahora, recorre este array y ejecuta el método precioFinal().
Por ejemplo, si tenemos un Electrodomestico con un precio final de 300, una lavadora de 200 y una televisión
de 500, el resultado final será de 1000 (300+200+500) para electrodomésticos, 200 para lavadora y 500 para
televisión.


Este es el ejercicio completo, hasta donde se pude realizar las 3 primeras partes, no consigo hacer la ultima. PD: Aun sigue en pie la propuesta de Discord :xD
En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Crear ArrayList a partir de una clase
« Respuesta #6 en: 1 Junio 2019, 16:12 pm »

Bien ve leyendo sobre herencia lo primordial aqui, *primordial*

Ejemplos ;D


https://foro.elhacker.net/java/metodo_mostrar_todos_los_atributos_de_un_objeto_por_pantallaresuelto-t494141.0.html

https://foro.elhacker.net/java/duda_sobre_combinar_metodos_de_una_clase_en_otra-t494297.0.html
« Última modificación: 1 Junio 2019, 16:14 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Crear ArrayList a partir de una clase
« Respuesta #7 en: 1 Junio 2019, 16:17 pm »

Si ahora mismo estoy leyendo sobre la herencia, y sobre la palabra "extends", espero poder comprender algo jajaja, gracias por la ayuda :D
En línea

rub'n


Desconectado Desconectado

Mensajes: 1.217


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Crear ArrayList a partir de una clase
« Respuesta #8 en: 1 Junio 2019, 19:18 pm »

Si ahora mismo estoy leyendo sobre la herencia, y sobre la palabra "extends", espero poder comprender algo jajaja, gracias por la ayuda :D

el metodo precio final solo sumara los costos de dichos productos  y el resultado  deberas mostrarlo con un for y ya, por lo que veo. pero create un ArrayList<>,List<E> de la superclase
« Última modificación: 1 Junio 2019, 20:11 pm por rub'n » En línea



rubn0x52.com KNOWLEDGE  SHOULD BE FREE.
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen ki
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
arraylist character to arraylist String
Java
mapers 4 5,318 Último mensaje 1 Noviembre 2011, 15:24 pm
por adastra
Generar clase en VB.net que permita calcular un punto a partir coordenadas
.NET (C#, VB.NET, ASP)
alejoz_arg 2 2,474 Último mensaje 27 Noviembre 2012, 14:12 pm
por alejoz_arg
Meter ArrayList en Otro ArrayList
Java
Tuplado 1 3,104 Último mensaje 5 Enero 2014, 22:10 pm
por ~ Yoya ~
llenar list(of oracleparameter) a partir de una clase
.NET (C#, VB.NET, ASP)
d91 2 2,727 Último mensaje 21 Septiembre 2015, 15:39 pm
por d91
Eliminar datos de una clase insertados en un arraylist
Java
jorgecotrinax 1 3,111 Último mensaje 7 Noviembre 2021, 19:38 pm
por K-YreX
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines