今天作业,定义类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;
/**
在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());
}
}