Anuncios Google

error en llamada de funciones(java)

Buenass, estoy empezando con java y estoy haciendo un ejercicio, bueno programa xD en la que creo una clase persona() y dentro de esta una serie de metodos (nombre edad..) y la informacion etc, y en la clase principal tengo que crear hasta cinco "personas" para introducir sus datos desde la clase principal llamando a los metodos y aqui ya me he atascado

porque pido por scan los datos pero no se como pasarselos a la clase persona(), aqui dejo el codigo de la clase principal:

package practica4;
import java.util.Scanner;
 
public class UsoPersona {
 
    public static void main(String[] args) {
 
                //Declaracion de variables
 
        Scanner teclado=new Scanner(System.in);
        int n=0; //numero de personas
        String nombre;
        int edad;
        float peso;
        int nIdentificacion;
        persona ps=new persona(); //creamos un objeto de la clase persona
 
        //pedimos numero de personas a crear, no mas de 5.
        do{
            System.out.println("Cuantas personas quieres registrar?");
            n=teclado.nextInt();
            if(n>5 || n<0)System.out.println("El numero introducido no es valido");
        }while(n>5 || n<0);
 
        //creamos vector
        persona lista[];
        lista=new persona[n];
 
        /*aqui hago un bucle para pedir los datos
         de todas las personas que vaya a introducir*/
 
        for(int i=0;i<n;i++){
            System.out.println("Introduce los datos de la persona nº: "+n);
            System.out.print("Nombre: ");
            nombre=teclado.next();
            System.out.print("Edad: ");
            edad=teclado.nextInt();
            System.out.print("Peso: ");
            peso=teclado.nextFloat();
            System.out.print("Numero de identificacion: ");
            nIdentificacion=teclado.nextInt();
 
        }
 
        //como paso estas variables nuevas a los metodos del la clase persona??
 
        /**************************En la clase perosona tengo un
         * metodo(no se si se llaman asi o constructores aun no lo tengo claro)
         *llamado:
         * public persona( String nombre, int edad){
            this.nombre=nombre;
            this.edad=edad; 
         * he probado a poner en esta la clase principal esto:
         *
         *ps.persona(nombre, edad); pero es erroneo
         * 
         *  
         */
        ps.imprimir();
    }

no me he explicado muy bien esque no se como preguntar esto, pero si alguien lo entiendo y me ayuda, gracias! 

PD: en la clase persona() tengo nombradas tambien las mismas variables que tengo en esta clase principal y una mas que se llama contador para saber el numero de personas de la lista



Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de joserc87

Te faltaría una cosa:

lista [i] = new persona (nombre, edad)

Aunque habría que ver la clase persona para saber cómo se le meten los datos de peso y nº de id. Por ejemplo:

lista [i].cambiarPeso (peso);

O algo así.

Además, para imprimirlo tendrías que poner:

for (int i=0; i<n; i++){
  lista [i].imprimir ();
}

En vez de ps.imprimir.

Saludos!


Be pointer my friend...

Dennis Ritchie. Padre de C y cocreador de UNIX.

R.I.P.

 

Falta condicion!!!

Te falto darle condicion al ciclo... tu ecribiste :

for(int i=0;n;i++){}

Yo lo escribiria asi:

for(int i=0;n<10;i++){}  Por ejemplo.

Donde esta la n tienes que usar un operador logico.

 

 

 

 

 

 

Imagen de ALCales

jajja ya ya puf cai despues,

jajja ya ya puf cai despues, que verguenza haber posteado esta pregunta tan tonta xD

pero bueno aprobechare para editarlo que me ha surgido otra duda


Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.