Pase una enumeración simple a un constructor en Java

Estoy tratando de aprender Java. Me gustaría tener una enumeración como parámetro en el constructor. Pero recibo un error.

public class Person {

    private int age, weight, height;
    private String name;

    private enum gender {MALE, FEMALE}

    public Person(int age, int weight, int height, String name, enum gender) {
         this.age    = age;
         this.weight = weight;
         this.height = height;
         this.name   = name;
         this.gender = gender;
    }
}

¿Cómo manejaría el género? Lo intenté solo con género y eso tampoco funcionó.

Respuesta 1

Primero, necesita crear un campo de tipo gender...

private gender aGender;

Luego debe cambiar el constructor para tomar una referencia a un objeto de tipo gender

public Person(int age, int weight, int height, String name, gender aGender) {

Luego debe asignar el parámetro a su campo ...

this.aGender = aGender;

También gender enumdeberías serpublic

public enum gender {
    MALE, FEMALE
}

De lo contrario, nadie podrá usarlo

Por ejemplo...

public class Person {

    private int age, weight, height;
    private String name;
    private gender aGender;

    public enum gender {
        MALE, FEMALE
    }

    public Person(int age, int weight, int height, String name, gender aGender) {
                 this.age = age;
        this.weight = weight;
        this.height = height;
        this.name = name;
        this.aGender = aGender;
    }
}

Es posible que desee leer las Convenciones de código para el lenguaje de programación Java TM , facilitará que las personas lean su código y lean a otros

Respuesta: 2

Si ha enum Genderdefinido, puede pasar directamente Genderal constructor, cambiar como

public Person(int age, int weight, int height, String name, Gender gender)
Respuesta: 3

¿Cómo almacenarías / representaría una cadena en un largo? Luego, ¿atascarlo en una matriz de 8 bytes? Cosas que he probado / trabajando con String eidString = "Awesome!"; ByteBuffer buf = ByteBuffer.allocate (8); ...

Tengo un mapa como el siguiente: class Person {Long personId; Nombre de cadena; / * Getters and Setters * /} He rellenado un mapa Map <Long, Person> personMap = new HashMap <> (); ...

Tengo una jerarquía de clases como esta Bebida -> Café-> Latte. Donde bebida es la superclase abstracta que está extendiendo Coffee. La clase de café luego agrega algo de comportamiento, pero también es abstracta. ...

He estado usando la estructura de datos Counter () en Python como un almacén de valores clave que me permite ordenar los objetos según su valor utilizando el método most_common. Más información aquí. Esta ahí ...