一个关于java类的编程问题

今天作业,定义类People
属性:姓名,性别,年龄,静态属性:人口数量
方法:
设置姓名:从键盘输入姓名
获取姓名:返回姓名
设置性别:从键盘输入字符串,取第一字符赋值给性别,若性别不为'M'或'W',从新输入
获取性别:返回性别
设置年龄:从键盘输入整数赋值给年龄
获取姓名:返回年龄
出生:调用设置姓名/性别/年龄方法,将人口数+1;
在main 方法中创建三个People类对象,调用各对象的出生方法,做好输出人口数。

。。。我能不能说 我知道,但我不告诉你

作业还是自己做,不知道或者说有问题可以在这说,这里都是一群热心的程序员

import java.util.Scanner;
public class PeopleTest {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name=in.nextLine();
People p1=new People();
p1.setBorn(name);
System.out.println("人口:"+p1.i);
}
}
class People{
private String name;
public static int i=1;
public People(){

}
//返回姓名
public String getName(){
    return name;
}
public void setName(String name){
    this.name=name;
}
public void setBorn(String name){
    People p=new People();
     p.setName(name);
     i++;
}

}
只写了一部分 你看看

哦哦 有个地方不好
Peopel p=new People();
p.setName(name);
这里 这两行代码用
this.setName(name);
代替


package com.jaedons.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**

  • 天作业,定义类People
  • 属性:姓名,性别,年龄,静态属性:人口数量
  • 方法:
  • 设置姓名:从键盘输入姓名
  • 获取姓名:返回姓名
  • 设置性别:从键盘输入字符串,取第一字符赋值给性别,若性别不为'M'或'W',从新输入
  • 获取性别:返回性别
  • 设置年龄:从键盘输入整数赋值给年龄
  • 获取姓名:返回年龄
  • 出生:调用设置姓名/性别/年龄方法,将人口数+1;
  • 在main 方法中创建三个People类对象,调用各对象的出生方法,做好输出人口数。
    *
    */
    public class testCountPeople {
    static Scanner scanner = new Scanner(System.in);
    public static void main(String[] args) {
    List peopleList = new ArrayList();
    for (int i = 0; i < 3; i++) {
    if (i==1) {
    System.out.print("");
    }
    People people = getPeople();
    peopleList.add(people);
    }
    System.out.println("共记录:"+People.count+"个人");

    }

    private static People getPeople() {
    // 从控制台获取姓名
    System.out.print("请输入姓名:");
    String name = getName();
    System.out.print("请输入性别男-M,女-W:");
    String sex = getSex();
    System.out.print("请输入年龄:");
    int age = getAge();
    People people = new People();
    people.setName(name);
    people.setAge(age);
    people.setSex(sex);
    People.count++;
    return people;
    }

    /**获取非空的字符串*/
    private static String getName() {
    String name = scanner.nextLine();
    if (name!=null&&name.trim().length()!=0) {
    return name;
    }else{
    System.out.print("请重新输入姓名:");
    return getName();
    }
    }
    /**获取合法的年龄数字*/
    private static int getAge() {
    int age = scanner.nextInt();
    if (age150) {
    System.out.print("请重新输入年龄(0-150):");
    return getAge();
    }else{
    return age;
    }
    }
    /**获取合法的性别*/
    private static String getSex(){
    String sex = scanner.nextLine();
    if (sex!=null) {
    sex = sex.substring(0, 1);
    if (!"M".equals(sex)&&!"W".equals(sex)) {
    System.out.print("请重新输入性别(MorW):");
    return getSex();
    }else{
    return sex;
    }
    }else{
    System.out.print("请重新输入性别(MorW):");
    return getSex();
    }
    }
    }
    class People{
    private String name;
    private String sex;
    private int age;
    public static int count;
    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;
    }
    public int getAge() {
    return age;
    }
    public void setAge(int age) {
    this.age = age;
    }
    @Override
    public String toString() {
    return "people [name=" + name + ", sex=" + sex + ", age=" + age + "]";
    }

}

我没有做异常处理,话说这个需求不太符合我得程序设计原则,先为了实现需求而编程,而后再做重构吧.

 import java.util.Scanner;

/**
* 属性:姓名,性别,年龄,静态属性:人口数量
方法:
设置姓名:从键盘输入姓名
获取姓名:返回姓名
设置性别:从键盘输入字符串,取第一字符赋值给性别,若性别不为'M'或'W',从新输入
获取性别:返回性别
设置年龄:从键盘输入整数赋值给年龄
获取姓名:返回年龄
出生:调用设置姓名/性别/年龄方法,将人口数+1;
在main 方法中
1-创建三个People类对象,
2-调用各对象的出生方法,
3-做好输出人口数。
*/
class People {

}

public class People {
//4个属性
private String name;
private String sex;
private int age;
private static int count = 0;

//设置姓名:从键盘输入姓名
public void setName() {
    Scanner sc = new Scanner(System.in);
    this.name = sc.next();
    //sc.close();
}

//获取姓名:返回姓名
public String getName() {
    return this.name;
}

//设置性别
public void setSex() {
    do {
        Scanner sc = new Scanner(System.in);//从键盘输入字符串
        String sex = sc.next();
        //sc.close();
        if (sex.startsWith("w") || sex.startsWith("W")) {
            this.sex = "女";//我把他中文化了
            break;
        } else if (sex.startsWith("m") || sex.startsWith("M")) {
            this.sex = "男";
            break;
        } else {
            System.out.println("请重新输入性别:");
            continue;
        }

    } while (true);
}

//获取性别
public String getSex() {
    return this.sex;
}

//设置年龄:从键盘输入整数赋值给年龄
public void setAge() {
    Scanner sc = new Scanner(System.in);
    this.age = Integer.parseInt(sc.next());
    // sc.close();
}

//返回年龄
public int getAge() {
    return this.age;
}

//输出人口数
public static int getCount() {
    return People.count;
}

@Override
public String toString() {
    return "姓名:" + this.name + ",性别:" + this.sex + ",年龄:" + this.age;
}

//出生:调用设置姓名/性别/年龄方法,将人口数+1;
public void doBirth() {
    System.out.println("请输入第" + (People.count + 1) + "个人的姓名:");
    setName();
    System.out.println("请输入第" + (People.count + 1) + "个人的性别:");
    setSex();
    System.out.println("请输入第" + (People.count + 1) + "个人的年龄:");
    setAge();
    People.count++;
}

//main方法
public static void main(String[] args) {
    //1-创建三个People类对象,
    People p1 = new People();
    People p2 = new People();
    People p3 = new People();

    //2-调用各对象的出生方法,
    p1.doBirth();
    p2.doBirth();
    p3.doBirth();

    //3-做好输出人口数。
    System.out.println(p1);
    System.out.println(p2);
    System.out.println(p3);
    System.out.println("现在人口数量:" + People.getCount());
}

}


 import java.util.Scanner;

/**
    * 属性:姓名,性别,年龄,静态属性:人口数量
    方法:
    设置姓名:从键盘输入姓名
    获取姓名:返回姓名
    设置性别:从键盘输入字符串,取第一字符赋值给性别,若性别不为'M'或'W',从新输入
    获取性别:返回性别
    设置年龄:从键盘输入整数赋值给年龄
    获取姓名:返回年龄
    出生:调用设置姓名/性别/年龄方法,将人口数+1;
    在main 方法中
    1-创建三个People类对象,
    2-调用各对象的出生方法,
    3-做好输出人口数。
 */
class People {

}

public class People {
    //4个属性
    private String name;
    private String sex;
    private int age;
    private static int count = 0;

    //设置姓名:从键盘输入姓名
    public void setName() {
        Scanner sc = new Scanner(System.in);
        this.name = sc.next();
        //sc.close();
    }

    //获取姓名:返回姓名
    public String getName() {
        return this.name;
    }

    //设置性别
    public void setSex() {
        do {
            Scanner sc = new Scanner(System.in);//从键盘输入字符串
            String sex = sc.next();
            //sc.close();
            if (sex.startsWith("w") || sex.startsWith("W")) {
                this.sex = "女";//我把他中文化了
                break;
            } else if (sex.startsWith("m") || sex.startsWith("M")) {
                this.sex = "男";
                break;
            } else {
                System.out.println("请重新输入性别:");
                continue;
            }

        } while (true);
    }

    //获取性别
    public String getSex() {
        return this.sex;
    }

    //设置年龄:从键盘输入整数赋值给年龄
    public void setAge() {
        Scanner sc = new Scanner(System.in);
        this.age = Integer.parseInt(sc.next());
        // sc.close();
    }

    //返回年龄
    public int getAge() {
        return this.age;
    }

    //输出人口数
    public static int getCount() {
        return People.count;
    }

    @Override
    public String toString() {
        return "姓名:" + this.name + ",性别:" + this.sex + ",年龄:" + this.age;
    }

    //出生:调用设置姓名/性别/年龄方法,将人口数+1;
    public void doBirth() {
        System.out.println("请输入第" + (People.count + 1) + "个人的姓名:");
        setName();
        System.out.println("请输入第" + (People.count + 1) + "个人的性别:");
        setSex();
        System.out.println("请输入第" + (People.count + 1) + "个人的年龄:");
        setAge();
        People.count++;
    }

    //main方法
    public static void main(String[] args) {
        //1-创建三个People类对象,
        People p1 = new People();
        People p2 = new People();
        People p3 = new People();

        //2-调用各对象的出生方法,
        p1.doBirth();
        p2.doBirth();
        p3.doBirth();

        //3-做好输出人口数。
        System.out.println(p1);
        System.out.println(p2);
        System.out.println(p3);
        System.out.println("现在人口数量:" + People.getCount());
    }
}

> 我没有做异常处理,话说这个需求不太符合我得程序设计原则,先为了实现需求而编程,而后再做重构吧.