[ Foro de Java ]

mis objetos no aparecen completos con for-each

15-Aug-2022 17:32
Invitado (javax)
1 Respuestas

Hola, estoy haciendo u curso de java, y tengo un problema en el cual yo creo dos objetos (uno con el constructor con parametros y otro sin parametros) para el sin parametros obtengo los atributos con la entrada del usuario y todo normal, ademas estos supuestamente estan inciudos en un array de tipo objeto, (no se si este bien escrito el codigo ademas) cuando intento mostrar los objetos con for-each, solo me muestra el objeto con paremtros y ademas me lo muestra 2 veces

¿porque no me muestra los dos objetos por separado?
----------------------------------------------------------------------------------------------

package inventory;
import java.util.*;
public class ProductTester {
public static int tempNum;
public static String tempName;
public static int tempQty;
public static double tempPrice;
public static int maxSize=-1;
public static void main(String[] args) {
Scanner in = new Scanner (System.in);
do {
try {
System.out.println("Cuantos productos desea registrar"
+ "\nEscriba 0 si no quiere agregar ningun producto: ");
maxSize = in.nextInt();
} catch (Exception e) {
System.out.println("Tipo de datos introducido incorrecto");
in.nextLine();
}
}while(maxSize<=0);
if (maxSize==0) System.out.println("No se requieren mas productos");
else {
Product arr[] = new Product [maxSize];
for(int index = 0; index < maxSize; index++) {
System.out.print("Numero del producto: ");
tempNum = in.nextInt();
System.out.print("Nombre del producto: ");
tempName = in.next();
System.out.print("Cantidad del producto: ");
tempQty = in.nextInt();
System.out.print("Precio del producto: ");
tempPrice = in.nextDouble();
}
Product p1 =  new Product();
arr[0] = p1;
in.nextLine();
Product p2 = new Product(2, "Teclado", 500, 450, true);
arr[1] = p2;
for (Product Productos : arr) {
System.out.println(Productos);
}
}
}
}


03-Sep-2022 19:51
Franco Garcia

Bueno, son varias cositas las que veo:
Tu for no tiene mucho sentido, porque tu intencion es cargar el primer objeto con valores del teclado y el segundo queres usar el constructor y pasarle parametros fijos. Distinto seria si queres llenar el array pidiendo datos del teclado.  Simplemente agrega
:
System.out.print("Numero del producto: ");
tempNum = in.nextInt();
System.out.print("Nombre del producto: ");
tempName = in.next();
System.out.print("Cantidad del producto: ");
 tempQty = in.nextInt();
System.out.print("Precio del producto: ");
tempPrice = in.nextDouble();
Product product = new Product(tempNum, tempName, tempQty, tempPrice, true);
arr[0] = product;

Product p2 = new Product(2, "Teclado", 500, 450, true);
arr[1] = p2;

for (Product Productos : arr) {
               System.out.println(Productos);
           }






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)