}
class Employee implements AddtionalSalary{
private String name;//员工姓名
private int birth;//员工生日月份
public Employee(String name,int birth){
this.name = name;
this.birth = birth;
}
public int getSalary(int month){
int result = 0;
if(month==birth)
result = 100;
return result;
}
public String getName(){
return name;
}
public int getAddtionalSalary(){
return 0;
}
}
class SalariedEmployee extends Employee{
private int salaryPerMonth;
public SalariedEmployee(String name,int birth,int salaryPerMonth){
super(name,birth);
this.salaryPerMonth = salaryPerMonth;
}
public int getSalary(int month){
return this.salaryPerMonth + super.getSalary(month)+
this.getAddtionalSalary();
}
public int getAddtionalSalary(){
return 2000;
}
}
class HourlyEmployee extends Employee{
private int salaryPerHour;
private int hoursPerMonth;
public HourlyEmployee(String name,int birth,int salaryPerHour,int hoursPerMonth){
super(name,birth);
this.salaryPerHour = salaryPerHour;
this.hoursPerMonth = hoursPerMonth;
}
public int getSalary(int month){
int result = 0;
if(this.hoursPerMonth<=160){
result = hoursPerMonth*salaryPerHour;
}else{
result = 160*salaryPerHour +
(int)((hoursPerMonth-160)*1.5*salaryPerHour);
}
return result+super.getSalary(month);
}
}
class SalesEmployee extends Employee{
private int sales;
private double rate;
public SalesEmployee(String name,int birth,int sales,double rate){
super(name,birth);
this.sales = sales;
this.rate = rate;
}
public int getSalary(int month){
return (int)(sales*rate)+super.getSalary(month);
}
}
class BasedPlusSalesEmployee extends SalesEmployee{
private int basedSalary;
public BasedPlusSalesEmployee(String name,int birth,int sales,double rate,int basedSalary){
super(name,birth,sales,rate);
this.basedSalary = basedSalary;
}
public int getSalary(int month){
return this.basedSalary+super.getSalary(month) +
this.getAddtionalSalary();
}
public int getAddtionalSalary(){
return 1000;
}
经典算法:
1. 某学校为学生分配宿舍,每6个人一间房(不考虑性别差异),问需要多少房?
答案: (x+5)/6
注意理解int类型数值。
2. 让数值在 0~9 之间循环。
public class test{
public static void main(String[] args){
int i=0;
while(true){
i = (i+1)%10;
System.out.println(i);
}
}
}
作业:
1. 写一个数组类(放对象):
功能包括:添加(添加不限制多少项)、修改、插入、删除、查询
class MyArray{
private Object[] os = new Object[10];
public void add(Object o);
public void set(int index, Object o);
public void insert(int index, Objecto);
public void remove(int index);
public void remove(Object o);
public Object get(int index);
}
public class TestMyArray{
public static void main(String[]args){
MyArray ma = new MyArray();
ma.add("aaa");
ma.add("bbb");
ma.add("ccc");
Object o = ma.get(1);
Iterator it = ma.iterator();
while(it.hasNext()){
Object o1 = it.next();
System.out.println(o1);
}
}
}
作业 10-08
1. 随机产生 20 个整数(10以内的),放入一个ArrayList中, 用迭代器遍历这个ArrayList
2. 并删除其中为 5 的数
3. 再产生 3 个整数,插入到位置 4 处
4. 把所有值为 1 的数都变成 10
import java.util.ArrayList;
class ArrayList{
private Object[] os = new Object[20];
}
public class TestArray{
public static void main(String[]args){
ArrayList a = new ArrayList();
ma.add("aaa");
ma.add("bbb");
ma.add("ccc");
Object o = ma.get(1);
Iterator it = ma.iterator();
while(it.hasNext()){
Object o1 = it.next();
System.out.println(o1);
}
}
}
1. 产生 3000 个 10 以内的数,放入 hashSet
2. 遍历它,打印每一个值