problema al intentar clasificar a las personas con genero , blueJ

Iniciado por robertofd1995, 17 Septiembre 2013, 17:21 PM

0 Miembros y 1 Visitante están viendo este tema.

robertofd1995

pues veran acaba de empezar la carrera hace unos dias , y nos han mandado de tarea , hacer una clasificacion de las personas de un aeropuerto, el vuelo que deben coger etc... pero eso en un futuro de momento , me han pedido crear una clase y de hay generar las personas "objetos ", nos piden que sepamos el nombre ,apellidos , edad y genero

el nombre , apellidos y edad ya los tengo puestos , el problema es que no se como hacer para poner el genero , es decir no lo puedo poner como los otros , el profesor nos pidió que usaramos una clasificacion por verdadero y falso , V para hombres y F para mujeres , el caso es que recien acabamos de empezar y todavia no han explicado casi nada y estoy mas perdido que un pez fuera del agua

he estado buscando por internet y encontre en un foro un chico con el mismo problema , intente hacer lo que ponia en las respuestas pero no fui capaz


aqui les dejo el codigo que tengo hasta el momento


/**
* Write a description of class person here.
*
* @author roberto
* @version 20130917
*/
public class person
{
    String name ="roberto";
    String surname ="fernandez diaz";
    String age ="18";
   
   
   
     /**
     * Constructor for objects of class person
     */
    public person()
    {
       
    }
/**
* mofies the value for name property
*/
public void setName(String newName)
{   
    name = newName ;
}

/**
* mofies the value for surname property
*/
public void setSurname(String newSurname)
{   
    surname = newSurname ;
}

/**
* mofies the value for age property
*/
public void setAge(String newAge)
{   
    name = newAge ;
}
   

    public String getName ()
    {
        return name;
    }
}



y lo que encontre por internet fue esto pero no consegui que funcionase

public void setGeslacht(char geslacht)   
     { 
         if (geslacht == 1) 
         { 
             geslacht2 = "M"; 
               
            } 
            if (geslacht == 2) 
            { 
                geslacht2 = "V"; 
            } 
            else {geslacht2 = "not found";} 
        } 
         
         
        public String getGeslacht2()   

 
   String temp; 
  temp = geslacht2; 
return temp;}



espero que me puedan responder y de paso que me expliquen un poco lo que han hecho , los comentarios del programa estan en ingles debido a que hacemos el grado en bilingüe

un saludo y gracias  ;D

eferion

Has probado a utilizar el tipo de dato boolean ???

Código (java) [Seleccionar]

public class Person
{
  // ...
  boolean gender;

  // ...

  public void setGender( boolean newGender )
  {
    gender = newGender;
  }

  public boolean getGender( )
  {
    return gender;
  }
}

robertofd1995

no , es que como puse arriba solo dimos una clase de practica y otra de teoria

me puedes explicar un poco lo que pusiste , y como funciona esa variable ?

muchas gracias por ayudarme

eferion

una variable booleana solo admite dos valores posibles, verdadero y falso.

La verdad es que no hay mucho más que explicar.

robertofd1995

pero de que depende que de verdadero y falso

es decir yo quiero que poniendo ya sea y/n o m/f me salga en el objeto que es hombre o mujer

quizas lo que te estoy diciendo resulte muy tonto pero todavia estoy empezando

DarK_FirefoX

Primero que todo el codigo que has puesto, esta un poco (muy) regado y con cosas innecesarias. Voy a darte la respuesta en C#, si es otro lenguaje, me dices

1ro. No has especificado los datos que te entran...voy a sumir Nombre, Apellidos, Edad y Sexo.

2do.En la clase que pones le estas dando unos valores fijos a tus variables

Código (csharp) [Seleccionar]
String name ="roberto";
    String surname ="fernandez diaz";
    String age ="18";


eso, me parece (estoy seguro) que no debe ser así, pues si tu clase Person debe trabajar para cualquiera, esto no te sirve.
Lo ideal seria que tu clase persona tenga esta estructura. Y para lo del Sexo, puedes crear un enum asi:

Código (csharp) [Seleccionar]
public enum Sexo
{
Masculino, Femenino
}


Clase Person:
Código (csharp) [Seleccionar]

public class Person
{
//Estas son las propiedades de tu clase, o sea, los datos que necesitas que
//tenga tu objeto.
//La parte get; set; significa que puedes Obtener y Cambiar los valores, si no //quieres poder cambiarlos desde afuera ponle private delante del set o del get
public string Nombre {get;set;}
public string Apellidos {get;set;}
public int Edad {get; set;}

//Esta es la propiedad referente al sexo, mira como utilizas el Enum que creamos.
public Sexo Sexo {get; set;}

//Constructor de la clase(objeto)que recibe los valores a utilizar
//la edad como es un entero, le pones int que es un tipo basico de C#
//Recibimos el string sexo como M o F
   public Person(string nombre, string apellidos, int edad, string sexo)
{
    Nombre = nombre;
    Apellidos = apellidos;
    Edad = edad;

//Aqui vemos si el string sexo tiene en su primer caracter M, si es asi, le asginamos //a la propiedad Sexo el valor Sexo.Masculino correspondiente al enum Sexo, en //caso contrario Sexo.Femenino

    if(sexo[0] == 'M')
       Sexo = Sexo.Masculino;
    else Sexo = Sexo.Femenino;
}
}


Espero que entiendas todo, sino entiendes algo escribeme ;)