Field gender in java

I am creating an Employee class containing three fields: name, age and gender. I need to create a gender field, but the user can only select a man or woman. I think I need to do this in a logical way, but I don’t know how I will do it. Can anyone help me out?

So far I:

public class Employee {

private String name;
private int age;
private boolean gender;
private boolean male;
private boolean female;

public Employee(String name, int age, boolean gender) 
{
    this.name = name;
    this.age = age;

    boolean f = female;
    boolean m = male;

    if (gender = f)
    {
        System.out.print("female");
    }

    else if (gender = m)
    {
        System.out.print("male");
    }
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public int getAge() {
    return age;
}

public void setAge(int age) {
    this.age = age;
}

public boolean isGender() {
    return gender;
}

public void setGender(boolean gender) 
{
    if (gender = f)
    {
        System.out.print("female");
    }

    else if (gender = m)
    {
        System.out.print("male");
    }
}
}
+5
source share
11 answers

Better use the enumeration for Gender:

public enum Gender {
    MALE, FEMALE
}
+20
source

You can use boolean, otherwise you can create an enumeration Gender:

In the Gender.java field:

public enum Gender {
    MALE,
    FEMALE
}

In Employee.java:

public class Employee {

    private String name;
    private int age;
    private Gender gender;

    public Employee(String name, int age, Gender gender) 
    {
        this.name = name;
        this.age = age;
        this.gender = gender;
        printGender();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Gender getGender() {
        return gender;
    }

    public void setGender(Gender gender) 
    {
        this.gender = gender;
    }

    public final void printGender() {
        System.out.println(gender.name().toLower());
    }    
}
+4
source

, isMale isFemale, isGender. , , -, , , false. , .

, , , , . : - , .

+3

, UNKNOWN. , , . . .

+3

:

( ) ( , , , ) , ( . , , , align, .

+2

Java 1.5 , ( ) , , / - .

:

public enum Gender {
    MALE,
    FEMALE,
}

// usage example
myEmployee.setGender(Gender.FEMALE);
+1

. , if f m =. if (gender == true) if (gender = false). , , .

+1

Java 1.5 (enum), .

:

public enum Gender {
    M, F, UNKNOWN
}

:

/**
 * Enumeration for reflecting user gender.
 * @author naXa!
 */
public enum Gender {
    /** Male. */
    M("Male"),
    /** Female. */
    F("Female"),
    /** Gender is not known, or not specified. */
    UNKNOWN("Unknown");

    private final String name;

    private Gender(String name) {
        this.name = name;
    }

    /**
     * @return The string representation of this element in the enumeration.
     */
    public String getName() {
        return this.name;
    }
}

:

Employee employee = new Employee("John Doe", 23, Gender.M);

, enum . . .

+1

:

1) isMale isFemale

2) Gender Enum, Gender.MALE Gender.FEMALE

0

.

.

, Employee. .

public class Employee {

    // other vars
    private boolean male;
    private boolean female;

    public Employee(/*other vars*/, boolean gender) 
    {
        /*THIS IS WRONG. male and female values not set
          so you cant assign anything to f or m. it will be an error.
        */
        boolean f = female;
        boolean m = male;

.

= == . = , . == .

//will assign the value of f to gender
if (gender = f){

// will check for equality
if(gender == f){

-.

setGender (boolean gender) .

//as it should be if you choose to use boolean.
public void setGender(boolean gender) 
{
    this.gender = gender;
}

.

. , , , false .

.

3, . isMale of isFemale , . isMale , emplyee .

Enum. U

0

Specifying gender as it enumhas its limitations: only 65535 attributes (and methods) can be set in one java class, which in today's world variety cannot be written.

I suggest using BigInteger with maximum value (2 ^ 32) ^ 2147483647.

-1
source

All Articles