大佬们,帮我看看这道题怎么做?

qq_40578653 2019-08-13 10:13:20
1、定义一个程序员类Coder类,包含以下属性:
姓名 name [String类型]
年龄 age [int 类型]
工资 salary [int类型]
生成 空参、满参构造方法,get/set方法
特有行为 编程 programme()
2、定义测试类Test
在测试类中定义一个 showInfo(ArrayList<Coder> list)方法
方法主要功能描述如下:
统计出集合list中年龄不大于35岁的程序员,将其工资增加2000元
同时调用 programme()方法
打印格式如下:
年龄为33岁张三,原工资为12000
涨薪后工资为14000
在main方法中创建四个Coder对象,要求所有的属性是通过键盘录入的格式进行录入
比如:
请输入第1个Coder对象的信
张三,34,8000
PS:(键盘录入学生信息的时候是用逗号隔开的)

将创建的对象存入到集合ArrayList中
调用show方法,最后在控制台打印输出满足条件的Coder的信息
...全文
159 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
杀猪剑客 2019-09-27
  • 打赏
  • 举报
回复

package crc;

public class Coder {

    private String name;

    private int age;

    private int salary;

    /**
     * 无参数构造
     */
    public Coder() {
    }

    /**
     * 满参数构造器
     */
    public Coder(String name, int age, int salary) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    public void programme() {
        System.out.println(String.format("年龄为%s岁%s,原工资为%s", this.age, this.name, this.salary));
    }


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }
}

package crc;



import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        List<Coder> list = new ArrayList<>();
        BufferedReader reader = null;
        try {
            reader = new BufferedReader(new InputStreamReader(System.in));
            for (int i = 0; i < 4; i++) {
                System.out.println(String.format("请输入第%s个Coder!", i + 1));
                Coder coder = builderCoder(reader.readLine());
                if (null == coder) return;
                list.add(coder);
            }
            Test test = new Test();
            test.showInfo(list);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (null != reader) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


    }

    private static Coder builderCoder(String info) {
        if (null == info || "".equals(info)) return null;
        String[] params = info.split(",");
        return new Coder(params[0], Integer.parseInt(params[1]), Integer.parseInt(params[2]));

    }

    public void showInfo(List<Coder> list) {
        list.forEach(coder -> {
            if (coder.getAge() <= 35) {
                coder.programme();
                coder.setSalary(coder.getSalary() + 2000);
                System.out.println(String.format("涨薪后的薪水为%s", coder.getSalary()));
            }
        });
    }
}

//结果
请输入第1个Coder!
张三,22,9000
请输入第2个Coder!
李四,23,12000
请输入第3个Coder!
王五,29,18000
请输入第4个Coder!
赵六,31,20000
年龄为22岁张三,原工资为9000
涨薪后的薪水为11000
年龄为23岁李四,原工资为12000
涨薪后的薪水为14000
年龄为29岁王五,原工资为18000
涨薪后的薪水为20000
年龄为31岁赵六,原工资为20000
涨薪后的薪水为22000
guishuanglin 2019-08-14
  • 打赏
  • 举报
回复
Coder 如下:

public class Coder {
	private String name;
	private int age;
	private int salary;
	
	public Coder() {
	}
	
	public Coder(String name,int age,int salary) {
		this.name= name;
		this.age= age;
		this.salary= salary;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getSalary() {
		return salary;
	}
	public void setSalary(int salary) {
		this.salary = salary;
	}
	
	public void programme() {
		System.out.println("年龄为"+age+"岁"+name+", 原工资为"+salary);
	}
	
}
Test Class:

import java.util.ArrayList;

public class Test {
	
	public void showInfo(ArrayList<Coder> list) {
		for(Coder e: list) {
			if(e.getAge() <= 35) {
				e.programme();
				e.setSalary(e.getSalary() +2000);
				System.out.println("涨薪后工资为"+e.getSalary());
			}
		}
	}

	public static void main(String[] args) {
		//测试参数:
		args = new String[] {"张三,26,8000","李四,27,8000","王五,30,9000","小六,36,10000"};
		if(args ==null || args.length <4) {
			System.out.println("PS:(键盘录入4个学生信息的时候是用逗号隔开),格式: name1,age1,salary1  name2,age2,salary2....");
			return;
		}
		ArrayList<Coder> list = new ArrayList<Coder>();
		for(String str: args) {
			String[] parm = str.split(",");
			Coder coder =  new Coder(parm[0], Integer.valueOf(parm[1]), Integer.valueOf(parm[2]));
			list.add(coder);
		}
		Test test = new Test();
		test.showInfo(list);
	}

}

//结果:
年龄为26岁张三, 原工资为8000
涨薪后工资为10000
年龄为27岁李四, 原工资为8000
涨薪后工资为10000
年龄为30岁王五, 原工资为9000
涨薪后工资为11000

62,635

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧