Foros del Web » Programación para mayores de 30 ;) » Java »

Clases y metodos

Estas en el tema de Clases y metodos en el foro de Java en Foros del Web. Buen dia. Tengo el siguiente problema: tengo que realizar un programa que tenga una clase llamada piloto y dentro contenga el nombre y el dni. ...
  #1 (permalink)  
Antiguo 20/10/2010, 07:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 22
Antigüedad: 16 años, 7 meses
Puntos: 0
Clases y metodos

Buen dia.

Tengo el siguiente problema:

tengo que realizar un programa que tenga una clase llamada piloto y dentro contenga el nombre y el dni.
Por otro lado tengo que realizar dos metodos, uno se llama leerdatos() y el otro verdatos(), que leear los datos desde el teclado y los visualice en pantalla, respectivamente...luego de esto me pide que haga un array para cargar los datos de n pilotos y los vea a todos por pantalla.

mi pregunta es:

puede ser arrancar asi:

import javax.swing.JOptionPane;
import java.io.*;

public class Piloto
{
char nombre;
int dni = 0;
String strNombre;
String strdni;

public void leerDatos();
{
strNombre = JOptionPane.showInputDialog("ingrese el Nombre:");
nombre = Integer.parseInt (strNombre);

strDni = JOptionPane.showInputDialog("ingrese el DNI:");
dni = Integer.parseInt (strdni);
}

public void verDatos()
{
JOptionPane.showMessageDialog(
null, "nombre del piloto:" + nombre , "resultado,",
JOptionPane.PLAIN_MESSAGE);

JOptionPane.showMessageDialog(
null, "DNI:" + dni , "resultado,",
JOptionPane.PLAIN_MESSAGE);
}

}


Esto es lo que me salio, la duda que tengo es donde poner el main y que tendria dentro del mismo....o tengo que hacer un programa con la clase y otro con los metodos.....???

Espero que me puedan ayudar saludos...

Andrtes
  #2 (permalink)  
Antiguo 20/10/2010, 09:59
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Clases y metodos

deja ver si te entendi, quieres los metodos para obtener datos y mostrar datos, y despues mostrar un arreglo de n pilotos, cada uno con sus respectivos datos, ¿cierto? Si es asi, pues aqui vamos:

Antes que nada, no necesitas crear otro programa, dentro del mismo se coloca todo. Creas un solo programa que va a contener el nombre de la clase, los atributos de esta, los metodos de la misma y finalmente el main. La estructura del programa es mas o menos asi


package pilotos;


public class pilotos {

//Atributos

//metodos

public static void main(String[] args) {
//desarrollo del programa
}

}

Como se observa, es un solo programa

Dentro de los metodos que colocas, el de leer datos no lleva ; al final, ademas, no entiendo por que intentas cambiar en esta linea

nombre = Integer.parseInt (strNombre);

Si nombre es char, y conviertes a entero, en todo caso, seria cambiar la variable nombre a entero, o cambiar la conversion. de igual manera, puedes dejar nombre como String y pasarle el valor directo.

Ahora, con el código que nos muestras, y algunas leves modifcaciones quedaría asi:

package pilotos;
import javax.swing.JOptionPane;
import java.io.*;

public class pilotos {

//Atributos de la clase

String nombre;
int dni = 0;
String strNombre;
String strdni;

//Metodos de la clase





public void leerDatos()
{
strNombre = JOptionPane.showInputDialog("ingrese el Nombre:");
this.nombre = strNombre;
strdni = JOptionPane.showInputDialog("ingrese el DNI:");
this.dni = Integer.parseInt (strdni);
}

public void verDatos()
{
JOptionPane.showMessageDialog(
null, "nombre del piloto:" + nombre , "resultado,",JOptionPane.PLAIN_MESSAGE);
JOptionPane.showMessageDialog(null, "DNI:" + dni , "resultado,",JOptionPane.PLAIN_MESSAGE);
}


public static void main(String[] args) {
pilotos p=new pilotos();
p.leerDatos();
p.verDatos();
}

}

en este ejemplo, solo crea un piloto y muestra su nombre y su dni, para el caso del arreglo, podrias hacer


pilotos [] p = new pilotos[n];

//donde n es tu numero de pilotos que deseas

for(int x=0;g<n;x++)
{

//y aqui instancias cada uno de ellos

p[x]= new pilotos();
p[x].leerDatos();
}

y finalmente imprimes, peor aqui imprime uno por uno, no se si quieras que los imprima todos a la vez

for(int x=0;g<n;x++)
{
p[x].verDatos();
}

Todo va dentro del mismo codigo :)

Espero te ayude, que tengas un buen dia. saludos
  #3 (permalink)  
Antiguo 20/10/2010, 20:07
 
Fecha de Ingreso: septiembre-2007
Mensajes: 22
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Clases y metodos

Gracias por toda la info, la verdad me salvaste ya que de este pudo hacer los demas que me quedan.

Lo unico que me queda es un error que dice Exception in thread "main" java.lang.NullPointerException
at Piloto.main(Piloto.java:48)


Me sale en este tramo final de codigo:



public static void main(String[] args)
{
Piloto [] p = new Piloto[8];
for(int x=0;x<8;x++)
{

p[x].verDatos(); // aca seria la linea 48..
}
}
}

la verdad no se que puede ser.
Saludos
Andres
  #4 (permalink)  
Antiguo 20/10/2010, 21:42
 
Fecha de Ingreso: septiembre-2007
Mensajes: 22
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Clases y metodos

Me olvide preguntar otra duda:

Para imprimir todo el listado de una sola vez, como seria.
ya que lo intendo de la forma que esta en el programa de ejemplo y no sale
  #5 (permalink)  
Antiguo 21/10/2010, 08:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 46
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Clases y metodos

Cita:
Iniciado por andress Ver Mensaje
public static void main(String[] args)
{
Piloto [] p = new Piloto[8];
for(int x=0;x<8;x++)
{

p[x].verDatos(); // aca seria la linea 48..
}
}
}
Si es todo tu codigo del main, falta colocarle valores a cada piloto, por que lo que hace la parte del codigo que me muestras solo declaras el arreglo y le pides ver los datos, pero realmente no hay, ya que primero tienes que, por asi decirlo, crear cada uno de los pilotos y despues darles su respectivo nombre y DNI

public static void main(String[] args)
{
Piloto [] p = new Piloto[8];
for(int x=0;x<8;x++)
{
p[x] = new Piloto(); //creando cada piloto
p[x].leerDatos() //dandole valores a cada piloto
p[x].verDatos(); // aca seria la linea 48..
}
}
}

Cita:
Iniciado por andress Ver Mensaje
Me olvide preguntar otra duda:

Para imprimir todo el listado de una sola vez, como seria.
ya que lo intendo de la forma que esta en el programa de ejemplo y no sale
Pues se me ocurrio una idea, aunque no aplicaria para demasiados pilotos, por que serian muchas iteraciones, pero lo que podrias hacer es crear una cadena que cada vez que se agregue un piloto con sus respectivos datos, los almacene y al final los imprima.

String impresion="";
for(int x=0;x<8;x++)
{
pp[x]= new pilotos();
pp[x].leerDatos();
impresion=impresion+pp[x].nombre+": "+String.valueOf(pp[x].dni+"\n");
}
JOptionPane.showMessageDialog(
null, "Lista de los pilotos con su respectivo DNI:\n" + impresion , "resultado,",JOptionPane.PLAIN_MESSAGE);

Cos esto te imprimira al final un cuadro de dialogo con todos los pilotos y su respectivo DNI.

Espero te ayude, saludos y que tengas bien dia !!

Etiquetas: clases, metodos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:55.