如何在类里判断男女性别,并分别返回男女数量。在成员方法里用了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;
}
}