刚学JAVA类,求帮助一些问题

如何在类里判断男女性别,并分别返回男女数量。在成员方法里用了if和equals,还是不行

把男的设为1,女的设为0

贴段源码,看看你怎么写的

public class TestPeople {

protected static int maleNum, femaleNum, Num = 0;
protected String name, gender;

public TestPeople(String name, String gender) {
    this.name = name;
    this.gender = gender;
    Num++;
}

public String toString() {
    return name + "," + gender;
}

public int equals(TestPeople p) {
    if (p.equals("男")) {
        maleNum++;
        return maleNum;
    } else {
        femaleNum++;
        return femaleNum;
    }
}

public int getMaleNum() {
    return maleNum;
}

public int getFemaleNum() {
    return femaleNum;
}

public int getNum(int Num) {
    return Num;
}

}

你的 Testpeople p 这个p是对象啊,不是p里面的性别啊 这个你怎么能比较

将性别定义为boolean变量

name和gender设get/set方法
if (p.equals("男")) 改成 if (p.getGender.equals("男"))

你这个一次只能有一个对象,那么不是男肯定就是女。根据你的要求猜想代码应该是这样

public class CountPeople implements Serializable{

/**
 * 
 */
private static final long serialVersionUID = 1L;

private int maleNum;
private int femaleNum;
private People[] peoples;

public CountPeople(People[] peoples) {
    super();
    this.peoples = peoples;
    for (People people : peoples) {
        if(people.getSex().equals("男")){
            setMaleNum(++maleNum);
        }else if(people.getSex().equals("女")){
            setFemaleNum(++femaleNum);
        }
    }
}
public int getMaleNum() {
    return maleNum;
}
public void setMaleNum(int maleNum) {
    this.maleNum = maleNum;
}
public int getFemaleNum() {
    return femaleNum;
}
public void setFemaleNum(int femaleNum) {
    this.femaleNum = femaleNum;
}
public People[] getPeoples() {
    return peoples;
}
public void setPeoples(People[] peoples) {
    this.peoples = peoples;
}

public static void main(String[] args) {
    People p1 = new People("1","男");
    People p2 = new People("2","男");
    People p3 = new People("3","男");
    People p4 = new People("4","男");
    People p5 = new People("5","女");
    People[] peoples = new People[]{p1,p2,p3,p4,p5};
    CountPeople p = new CountPeople(peoples);
    System.err.println(p.getMaleNum());
    System.err.println(p.getFemaleNum());
}

}
class People{
private String name;
private String sex;
public People() {
}
public People(String name, String sex) {
super();
this.name = name;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}

}

equals方法参数改为string类型,调用equals方法传入参数“男”或“女”

public int equals(TestPeople p) {
if (p.equals("男")) {
maleNum++;
return maleNum;
} else {
femaleNum++;
return femaleNum;
}
}