1.分别计算出经理与员工的绩效及工资。
(1)创建一个员工类Employee Employee要求:
成员变量:员工姓名(private String name) 员工工号( private int id) 员工工资( private int wage)
成员方法:
1、 员工工作 public abstract void work();
2、员工获得工资public abstract void getFullWage();
构造方法: 1、无参的构造方法 2、有参的构造方法,初始化成员变量。
(2)继承员工类编写一个经理类Manager Manager要求: 成员变量:增加一个成员变量:奖金:int reward;(经理的工资由两部分组成:基本工资+奖金) 成员方法:员工工作 - work() 这个方法要求输出: 该员工的名字+“经理在认真工作”。 员工获得工资-getFullWage () 这个方法要求输出: 该员工的名字+“经理的奖金是”+reward奖金+“,他的总工资是”+(wage基本工资+reward奖金);
构造方法:通过调用父类的构造方法来给部分成员变量进行赋值(super)。
(3)继承员工类编写一个普通员工类Commoner Commoner的要求:
成员方法:员工工作 -work() 这个方法要求输出: 该员工的名字+“这个普通员工在认真工作”。 员工获得工资-getFullWage() 这个方法要求输出: 该员工的名字+他的工资 构造方法:通过调用父类的构造方法(super),来给成员变量进行赋值。
创建一个测试类Test Test要求:
- 创建一个普通员工 c
- 创建一个经理 m
- 采用多态的方式分别调用经理、普通员工的work()和getFullWage ()方法输出
- 输出学号和姓名
package java_11_10;
public abstract class Employee {
private String name;
private int id;
private int wage;
public abstract void work();
public abstract void getFullWage();
public Employee() {
super();
}
public Employee(String name, int id, int wage) {
super();
this.name = name;
this.id = id;
this.wage = wage;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getWage() {
return wage;
}
public void setWage(int wage) {
this.wage = wage;
}
}
package java_11_10;
public class Manager extends Employee {
private int reward;
public Manager() {
// TODO Auto-generated constructor stub
}
public Manager(String name, int id, int wage, int reward) {
super(name, id, wage);
this.reward = reward;
}
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println(getName() + "经理在认真工作");
}
@Override
public void getFullWage() {
// TODO Auto-generated method stub
System.out.println(getName() + "经理的奖金是" + reward + ";他的总工资是" + (getWage() + reward));
}
}
package java_11_10;
public class Commoner extends Employee {
public Commoner() {
// TODO Auto-generated constructor stub
}
public Commoner(String name, int id, int wage) {
super(name, id, wage);
}
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println(getName() + "这个员工在认真工作");
}
@Override
public void getFullWage() {
// TODO Auto-generated method stub
System.out.println(getName() + "的工资是" + getWage());
}
}
package java_11_10;
public class Test {
public static void main(String[] args) {
Employee c = new Commoner("张三", 1001, 5000);
c.work();
c.getFullWage();
Employee m = new Manager("李四", 2002, 7000, 1500);
m.work();
m.getFullWage();
}
}
2.求1000以内的完数。
public class Number {
public static void main(String[] args) {
for (int a=2;a<=1000 ;a++ ){
int c=0;
for (int b=1;b<a ;b++ )
{
if (a%b==0)
{
c+=b;
}
}
if(c==a)
{
System.out.println(c);
}
}
}
}
3.Citizen类包含姓名、性别、出生年月和输出信息的方法。从Citizen类继承,定义一个教师Teacher类,并添加属性教师代码、教师职位和h主讲课程,覆盖夫类的display()方法。调用子类的方法显示教师信息(在子类的方法中首先调用父类的方法)。
题目分析:
(1)数据成员
教师代码、教师职位和主讲课程都设置为String 类型
(2)构造方法
public Teacher( ),用"0000"、"助教"、"习题课"初始化添加的属性
public Teacher(String personID,String name,String sex,String birthday,String teacherID,String position,String courseName)
(3)其他方法
public void display(),首先调用父类的 display()方法,然后,输出新添加的属性
(4)程序运行
调用有参构造函数,生成Teacher类的对象;参数为:"65410519670221272x","姜氏","女","1967.2.21", "1201","教授","物理学"
调用该对象的display()方法
代码如下:
Citizen.java
package java2023_08_10;
public class Citizen {
private String personID = "0000000000000000";
private String name = "姜氏";
private String sex = "女";
private String birthday = "1967.2.21";
public void display() {
// TODO Auto-generated method stub
System.out.println("身份证号码: " + personID);
System.out.println("姓名:" + name);
System.out.println("性别:" + sex);
System.out.println("出生年月:" + birthday);
}
}
Teacher.java
package java2023_08_10;
public class Teacher extends Citizen {
private String id;
private String work;
private String className;
public Teacher() {
this.id = "0000";
this.work = "助教";
this.className = "习题课";
}
public Teacher(String personID, String name, String sex, String birthday, String id, String work,
String className) {
super();
this.id = id;
this.work = work;
this.className = className;
}
@Override
public void display() {
super.display();
System.out.println("教师编码:" + id);
System.out.println("教师职位:" + work);
System.out.println("主讲课程:" + className);
}
}
Test.java
package java2023_08_10;
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Teacher t = new Teacher("65410519670221272x", "姜氏", "女", "1967.2.21", "1201", "教授", "物理学");
t.display();
}
}