Hola chicos
Como les va?
Tengo una pregunta media idiota que la verdad me esta sacando la cabeza y no se si no logro ver algo realmente básico (me estoy ahogando en un vaso de agua o es mas complicado), o algo mas complejo...
Tengo la siguiente Clase Bebidas:
public class Bebidas{
private float costo;
return nombre;
}
public void setNombre
(String nombre
) { this.nombre = nombre;
}
public float getCosto() {
return costo;
}
public void setCosto(float costo) {
this.costo = costo;
}
}
Y la clase main:
public class pruebasMAIN {
static ArrayList<Bebidas> bebidalist = new ArrayList<Bebidas>();
static int nbotella;
static Scanner keyboard
= new Scanner
(System.
in);
public static void main
(String[] args
) {
System.
out.
println("Ingrese cantidad"); nbotella = keyboard.nextInt();
keyboard.nextLine();
for (int i = 0; i < nbotella; i++){
System.
out.
println("Ingresar el nombre de la bebida "+ (i
+1)); String botellabebida
=keyboard.
nextLine(); System.
out.
println("Ingresar el Costo de la bebida "+ (i
+1)); float costobebida=keyboard.nextFloat();
keyboard.nextLine();
Bebidas pruebatest = new Bebidas();
pruebatest.setNombre(botellabebida);
pruebatest.setCosto(costobebida);
bebidalist.add(pruebatest);
}
Iterator<Bebidas> nombinterator = bebidalist.iterator();
while(nombinterator.hasNext()){
Bebidas elemento = nombinterator.next();
System.
out.
print(elemento
+" / "); }
}
}
Y en consola me muestra lo siguiente....:
Ingrese cantidad
2
Ingresar el nombre de la bebida 1
asdasd
Ingresar el Costo de la bebida 1
300
Ingresar el nombre de la bebida 2
ffffff
Ingresar el Costo de la bebida 2
200
pruebas.prueba@28d93b30 / pruebas.prueba@1b6d3586 /
No entiendo porque me muestra eso.... "pruebas.prueba@28d93b30 / pruebas.prueba@1b6d3586 /" es como si no guardara los parámetros que le mando a la clase Bebidas... y me devuelve algo por defecto del IDE.
Capaz estoy haciendo algo mal...
ya intente instanciando bebidas como un objeto global <static Bebidas bebida = new Bebidas();>
Pero tampoco así...
Sera algo malo en la clase o bien en el iterator ???
Gracias
¿Cómo se supone que se debería ver tu clase "Bebidas" por pantalla?
Eso Java no lo sabe.
Cuando haces elemento+" / ", lo que realmente haces es elemento.toString() + " / ". Esa función toString (de la clase Object), por defecto, devuelve lo que ves.
Si quieres devolver tu propio valor, tienes que implementar tú la función:
@Override
}
Y ahí ya devuelves lo que quieras.
¿Cómo se supone que se debería ver tu clase "Bebidas" por pantalla?
Eso Java no lo sabe.
Cuando haces elemento+" / ", lo que realmente haces es elemento.toString() + " / ". Esa función toString (de la clase Object), por defecto, devuelve lo que ves.
Si quieres devolver tu propio valor, tienes que implementar tú la función:
@Override
}
Y ahí ya devuelves lo que quieras.
Dios tenes razon! que idiotes fue, como no me di cuenta :-[
Muchas gracias sos un genio !
Dios tenes razon! que idiotes fue, como no me di cuenta :-[
Muchas gracias sos un genio !
hay tienes un ejemplillo aleatorio :-X
package testing.foro;
import java.text.SimpleDateFormat;
import java.util.*;
public class Exec {
private static final Scanner LEER
= new Scanner
(System.
in); private static final String NAMES
[] = {"Coca-cola",
"Pepsi",
"Gatorade",
"PoweRade",
"RedBull"}; private static final float COSTO[] = new float[]{45.5f, 500.9f, 99.99f,100f,500f,985.66f};
private static List<Bebidas> bebidas = new ArrayList<>();
private static Bebidas bebida;
private int nBebidas;
public Exec() {
init();
}
private void init() {
print(FECHA+"\n");
print("Introduce numero de bebidas: ");
nBebidas = LEER.nextInt();
print("presiona cualquier tecla para empezar... "+"\n");
LEER.hasNext();
for(int f=0; f<nBebidas; f++) {
bebida = new Bebidas();
print("Ingrese Nombre de la bebida: ");
bebida.setNombre(NAMES[R.nextInt(NAMES.length)]);
print(bebida.getNombre()+"\n");
print("Ingrese Costo de la bebida: ");
bebida.setCosto(COSTO[R.nextInt(COSTO.length)]);
print(""+bebida.getCosto()+"\n");
bebidas.add(bebida);
}
print("\nBebidas Adquiridas son las siguientes:.");
bebidas.stream().forEach(b -> print(b));
}
private static <T
> void print
(final T s
){System.
out.
print(s
);} public static void main
(String[] args
) { new Exec();
}
}
22 nov. 2017 11:57:31 PM
Introduce numero de bebidas: 3
presiona cualquier tecla para empezar...
a
Ingrese Nombre de la bebida: Gatorade
Ingrese Costo de la bebida: 985.66
Ingrese Nombre de la bebida: Pepsi
Ingrese Costo de la bebida: 100.0
Ingrese Nombre de la bebida: PoweRade
Ingrese Costo de la bebida: 500.9
Bebidas Adquiridas son las siguientes:.
Nombre: Gatorade
Costo: 985.66
Nombre: Pepsi
Costo: 100.0
Nombre: PoweRade
Costo: 500.9