将简单的枚举传递给Java中的构造函数

kin*_*986 8 java enums constructor

我正在努力学习Java.我想在构造函数中有一个枚举作为参数.但是我收到了一个错误.

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我该如何处理性别?我尝试过性别,但也没用.

Mad*_*mer 8

首先,您需要创建类型字段gender...

private gender aGender;
Run Code Online (Sandbox Code Playgroud)

然后,您需要更改构造函数以获取对类型对象的引用 gender

public Person(int age, int weight, int height, String name, gender aGender) {
Run Code Online (Sandbox Code Playgroud)

然后你需要将参数分配给你的领域......

this.aGender = aGender;
Run Code Online (Sandbox Code Playgroud)

gender enum应该也是public

public enum gender {
    MALE, FEMALE
}
Run Code Online (Sandbox Code Playgroud)

否则,没有人能够使用它

例如...

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

您可能希望阅读Java TM编程语言的代码约定,它将使人们更容易阅读您的代码并让您阅读其他代码