奋斗中 加油
第一个类
import java.util.Scanner;
class Demo{
public static void main(String[] args){
System.out.println("请输入"+Person.city+"有多少人:");
Person[] p=new Person[MyMath.judge((new Scanner(System.in).next()))];//判断用户输入是否合法
MyMath.paddingYes(p);//填充数组
MyMath.stamp(p);//打印数组
MyMath.stampMax(MyMath.lookupMax(p));//打印年龄最大的人
MyMath.stampMin(MyMath.lookupMin(p));//打印年龄最小的人
MyMath.stampAverage(p,MyMath.average(p));//打印平均年龄
}
}
第二个类
import java.util.Scanner;
//实现类
public class MyMath{
//私有化构造器
private MyMath(){
}
static Scanner sc=new Scanner(System.in);
//填充数组方法1--调用无参构造方法
public static void paddingNo(Person[] p){
for(int i=0;i<p.length;i++){
System.out.println("请输入第"+(i+1)+"个人的信息:");
Person per=new Person();//实例化一个Person对象 调用无参构造方法通过set()设置值
System.out.print("姓名:");
per.setName(sc.next());
System.out.print("性别:");
per.setSex(sc.next());
System.out.print("年龄:");
per.setAge(MyMath.judge(sc.next()));//判断用户输入是否合法
p[i]=per;//将每个对象的“引用”存储在数组中
}
}
//填充数组方法2--调用带参数的构造方法
public static void paddingYes(Person[] p){
for(int i=0;i<p.length;i++){
System.out.println("请输入第"+(i+1)+"个人的信息:");
System.out.print("姓名:");
String name=sc.next();
System.out.print("性别:");
String sex=sc.next();
System.out.print("年龄:");
int age=MyMath.judge(sc.next());//判断用户输入是否合法
Person per=new Person(name,sex,age);//实例化一个Person对象 调用带参数的构造方法设置值
p[i]=per;//将每个对象的“引用”存储在数组中
}
}
//打印数组
public static void stamp(Person[] p){
for(int i=0;i<p.length;i++){
System.out.println("城市:"+Person.city+" 姓名:"+p[i].getName()+" 性别:"+p[i].getSex()+" 年龄:"+p[i].getAge());
}
}
//找出年龄最大的人
public static Person lookupMax(Person[] p){
Person per=p[0];
for(int i=0;i<p.length;i++){
per = per.getAge()<p[i].getAge()?p[i]:per;
}
return per;
}
//找出年龄最小的的人
public static Person lookupMin(Person[] p){
Person per=p[0];
for(int i=0;i<p.length;i++){
per=per.getAge()>p[i].getAge()?p[i]:per;
}
return per;
}
//求平均年龄
public static int average(Person[] p){
int sum=0;
for(int i=0;i<p.length;i++){
sum+=p[i].getAge();
}
return sum/p.length;
}
//打印一个人的信息
public static void stampOne(Person p){
System.out.println("城市:"+Person.city+" 姓名:"+p.getName()+" 性别:"+p.getSex()+" 年龄:"+p.getAge());
}
//打印年龄最小的一个人的信息
public static void stampMin(Person p){
System.out.println(Person.city+"年龄最小的人是--姓名:"+p.getName()+" 性别:"+p.getSex()+" 年龄:"+p.getAge());
}
//打印年龄最大的一个人的信息
public static void stampMax(Person p){
System.out.println(Person.city+"年龄最大的人是--姓名:"+p.getName()+" 性别:"+p.getSex()+" 年龄:"+p.getAge());
}
//打印平均年龄
public static void stampAverage(Person[] p,int age){
System.out.println(Person.city+p.length+"个人的平均年龄为:"+age);
}
//判断用户输入是否合法
public static int judge(String num){
int n=0;
while(true){
if(num.matches("[0-9]+")){//判断是否为数字0--9
n=Integer.parseInt(num);
if(n>=0&&n<=100){//判断是否在0--100之间
break;
}
else{
System.out.print("非法年龄,请重新输入:");
num=sc.next();
}
}
else{
System.out.print("非法年龄,请重新输入:");
num=sc.next();
}
}
return n;
}
}
第三个类:
class Person{
public static final String city="北京";//常量
private String name;
private String sex;
private int age;
Person(){
}
Person(String name,String sex,int age){
this.name=name;
this.sex=sex;
this.age=age;
}
void setName(String name){
this.name=name;
}
String getName(){
return this.name;
}
void setSex(String sex){
this.sex=sex;
}
String getSex(){
return this.sex;
}
void setAge(int age){
this.age=age;
}
int getAge(){
return this.age;
}
}
|