Autor
|
Tema: Contar objetos creados de una clase (Leído 24,920 veces)
|
alexis33de
Desconectado
Mensajes: 56
|
Pues bien veran recien estoy aprendiendo este lenguaje java por mi propia cuenta , entonces cn la ayuda de un libro, y bueno estoy en el tema de clases en java Y la verdad me entro una duda , veran ahi uso objetos y otros q defino por teclado ,ahora mi duda esta en como hago para contar los objetos , es decir si creo varios objetos por teclado como hago para q los cuente(sorry recien empiezo y no se muchas cosas) . Bueno si alguien me puede dar una idea de como realizarlo. OJO: no es tarea, ni trabajo por lo tanto no es urgente su respuesta SALUDOS class Pelota { //Datos miembro double peso; // Constructores public Pelota(){ peso = 0.0; color = "no definido"; marca = "no definido"; } //Este constructor permite recibir datos deste teclado public Pelota (double elPeso, String elColor, String laMarca ){ peso = elPeso; color = elColor; marca = laMarca; } // Metodos set - modifican los datos miembro public void setPeso(double elPeso) { peso = elPeso; } public void setColor (String elColor ) { color = elColor; } public void setMarca (String laMarca ) { marca = laMarca; } // Metodos get - muestran la informacion de los datos miembro public double getPeso() { return peso ; } { return color; } { return marca; } }
import java.util.Scanner; class CreandoPelotasMain { public static void main (String [] args ) { double elPeso; //Creacion de objeto Pelota con Constructor por defecto Pelota miPelota = new Pelota(); // Mostramos los datos del objeto pelota inicial System. out. println("peso : " + miPelota. getPeso() ) ; System. out. println("color: " + miPelota. getColor() ) ; System. out. println("marca: " + miPelota. getMarca() ) ; // Ponemos valores a los datos del objeto con los metodos set miPelota.setPeso(1.0); miPelota.setColor("Rojo"); miPelota.setMarca("Adidas"); // Mostramos los datos del objeto luego de llamar a los metodos set System. out. println("peso : " + miPelota. getPeso() ) ; System. out. println("color: " + miPelota. getColor() ) ; System. out. println("marca: " + miPelota. getMarca() ) ; //Ingresamos datos por teclado Scanner scan = new Scanner (System. in); System. out. print("Ingrese el Peso: "); elPeso = scan.nextDouble(); System. out. print("Ingrese el Color: "); elColor = scan.next(); System. out. print("Ingrese la Marca: "); laMarca = scan.next(); //Creamos un nuevo objeto y //Le pasamos los valores de elPeso, elColor y la laMarca al constructor Pelota otraPelota = new Pelota(elPeso, elColor, laMarca); //mostramos el contenido del objeto System. out. println("peso : " + otraPelota. getPeso() ) ; System. out. println("color: " + otraPelota. getColor() ) ; System. out. println("marca: " + otraPelota. getMarca() ) ; } }
|
|
|
En línea
|
|
|
|
Debci
Wiki
Desconectado
Mensajes: 2.021
Actualizate o muere!
|
De que objeto quieres saber la length? porque existe o bien la funcion getSize() o getLenght() de los objetos y length a secas que entrega un valor int en el caso de las variables.
Saludos
|
|
|
En línea
|
|
|
|
alexis33de
Desconectado
Mensajes: 56
|
en realidad no el tamaño de caracteres , si a eso te refieres con los get , si no cuantos objetos en total fueron creados osea un valor int (x ejm si ingreso por teclado peso que me diga q ya tengo un objeto creado, y si vuelvo a poner otro peso que me diga q tengo 2 y asi sucesivamente)
|
|
|
En línea
|
|
|
|
Debci
Wiki
Desconectado
Mensajes: 2.021
Actualizate o muere!
|
en realidad no el tamaño de caracteres , si a eso te refieres con los get , si no cuantos objetos en total fueron creados osea un valor int (x ejm si ingreso por teclado peso que me diga q ya tengo un objeto creado, y si vuelvo a poner otro peso que me diga q tengo 2 y asi sucesivamente) O bien agrupandolos en arrays y luego obteniendo el lenght de estos o viene n un bucle iterativo que valla contando los loops por cada uno que añades... Ademas lenght no es para el tamaño de los caracteres, si no para el numero de objetos en una estructura de memoria. Saludos
|
|
|
En línea
|
|
|
|
Pablo Videla
|
en realidad no el tamaño de caracteres , si a eso te refieres con los get , si no cuantos objetos en total fueron creados osea un valor int (x ejm si ingreso por teclado peso que me diga q ya tengo un objeto creado, y si vuelvo a poner otro peso que me diga q tengo 2 y asi sucesivamente) Usa colecciones, arreglos para almacenar los objetos.
|
|
|
En línea
|
|
|
|
alexis33de
Desconectado
Mensajes: 56
|
Pues no tengo mucha experiencia en java , pero he usado un for para que haga el loop , aun no funciona correctamente pero entendi algo como esto import java.util.Scanner; class CreandoPelotasMain { public static void main (String [] args ) { double elPeso; int numero[]=new int [11] ; int resultado; int i; //Creacion de objeto Pelota con Constructor por defecto Pelota miPelota = new Pelota(); // Mostramos los datos del objeto pelota inicial System. out. println("peso : " + miPelota. getPeso() ) ; System. out. println("color: " + miPelota. getColor() ) ; System. out. println("marca: " + miPelota. getMarca() ) ; // Ponemos valores a los datos del objeto con los metodos set miPelota.setPeso(1.0); miPelota.setColor("Rojo"); miPelota.setMarca("Adidas"); // Mostramos los datos del objeto luego de llamar a los metodos set System. out. println("peso : " + miPelota. getPeso() ) ; System. out. println("color: " + miPelota. getColor() ) ; System. out. println("marca: " + miPelota. getMarca() ) ; //Ingresamos datos por teclado for (i=1;i<10;i++) Scanner scan = new Scanner (System. in); System. out. print("Ingrese el Peso: "); elPeso = scan.nextDouble(); System. out. print("Ingrese el Color: "); elColor = scan.next(); System. out. print("Ingrese la Marca: "); laMarca = scan.next(); resultado=numero[i++]; //Creamos un nuevo objeto y //Le pasamos los valores de elPeso, elColor y la laMarca al constructor Pelota otraPelota = new Pelota(elPeso, elColor, laMarca); //mostramos el contenido del objeto System. out. println("peso : " + otraPelota. getPeso() ) ; System. out. println("color: " + otraPelota. getColor() ) ; System. out. println("marca: " + otraPelota. getMarca() ) ; System. out. println("El numero de objetos es"+resultado ); } }
|
|
|
En línea
|
|
|
|
Leyer
Desconectado
Mensajes: 786
leyer@elhacker.net
|
int numero[]=new int [11] ;
y eso a que ha venido XD, Estas usando mal el for en ese caso, se emplean { } para denotar sus sentencias internas Example: for(int index=0;index<10;index++){ //sentencias }
Si no le agregas los {} entonces solo tomara la primera sentencia. Por lo demás has lo siguiente: Crea un arreglo de objetos como te lo han dicho, pero al parecer no sabes como hacerlo bueno se hace asi. Pelota []pelotas=new Pelota[10];
y luego utilizas correctamente el for Scanner scan = new Scanner (System. in);for(int index=0; index<pelotas.length; index++){ System. out. print("Ingrese el Peso: "); elPeso = scan.nextDouble(); System. out. print("Ingrese el Color: "); elColor = scan.next(); System. out. print("Ingrese la Marca: "); laMarca = scan.next(); pelotas[index]=new Pelota(elPeso, elColor, laMarca); System. out. println(":"+(index +1)+" -> Obj creado."); }
y ya solo te quedaría recorrer el arreglo de objetos y mostrar los datos de cada uno. Un saludo.
|
|
« Última modificación: 16 Agosto 2010, 19:22 pm por LEYER »
|
En línea
|
|
|
|
alexis33de
Desconectado
Mensajes: 56
|
HEHE pues recien estoy empezando cn este lenguaje y algunas cosas no se como van en java pero gracias de todas formas
|
|
|
En línea
|
|
|
|
Debci
Wiki
Desconectado
Mensajes: 2.021
Actualizate o muere!
|
HEHE pues recien estoy empezando cn este lenguaje y algunas cosas no se como van en java pero gracias de todas formas Hombre de todas formas no que creo que las respuestas han sido buenas no? Sobretodo LEYER que siempre mete codigos en sus respuestas Saludos
|
|
|
En línea
|
|
|
|
Gallu
Desconectado
Mensajes: 247
|
Hay ay ay ay , veo que estamos todos muy verdes en esto de java , si quieres saber el número de objetos creados de cierta clase lo que has de hacer es crear una variable estática en la clase , que el constructor le sume uno a dicha variable , eje. class Persona{ private static int numPersonas; public Persona(){ numPersonas++; } public static int getNumeroPersonas(){ return numPersonas; } } class PruebaContador{ public static void main (String []arg ){ Persona per1 = new Persona(); Persona per2 = new Persona(); Persona per3 = new Persona(); Persona per4 = new Persona(); System. out. println("El número de objetos persona es = "+ Persona. getNumeroPersonas()); } } }
otra cosa , el código repetido lo podrías poner en funciones para utilizarlo donde quieras , si te fijas , en tu código , repites los System.out para imprimir la información de las Pelotas , por que no haces public void printInfoPelota(Pelota pelota){ System. out. println("peso : " + pelota. getPeso() ) ; System. out. println("color: " + pelota. getColor() ) ; System. out. println("marca: " + pelota. getMarca() ) ; }
y luego solamente llamarías a la función printInfoPelota(miPelota); printInfoPelota(otraPelota);
también te recomiendo que te leas la java code conventions http://www.oracle.com/technetwork/java/codeconv-138413.html
espero que te haya servido.
|
|
« Última modificación: 17 Agosto 2010, 15:11 pm por Didacso »
|
En línea
|
Nadie alcanza la meta con un solo intento, ni perfecciona la vida con una sola rectificación, ni alcanza altura con un solo vuelo.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
se puede dar herencia de una clase anidada a una clase normal.
Java
|
kev4142
|
0
|
3,421
|
7 Agosto 2009, 20:46 pm
por kev4142
|
|
|
Problema de interacion entre una clase Interfaz y la clase que la llama
Java
|
yeah69
|
4
|
4,581
|
21 Mayo 2010, 06:30 am
por we4rt
|
|
|
Clase interna, acceder a objetos
Java
|
ltbl
|
1
|
4,577
|
6 Marzo 2011, 00:03 am
por sapito169
|
|
|
Problemas con clase,objetos y propiedades
.NET (C#, VB.NET, ASP)
|
DanielPy
|
3
|
2,916
|
3 Agosto 2013, 20:42 pm
por Novlucker
|
|
|
pequeña duda de loso objetos de la clase String
Java
|
Beginner Web
|
1
|
2,219
|
22 Julio 2019, 18:11 pm
por EdePC
|
|