java代码,假设一个学校接待方面的程序,招待不同身份的人的食宿问题,其对应规则如:身份是学生,食在食堂,宿在宿舍。身份是教师,食在教师食堂,宿在学校公寓。身份是学生家长,食在招待所,宿在招待所。编写接待中心类,该类有一个方法接待,方法的参数为上述定义的接口,该方法显示对于该接待对象的食宿的接待方法。编写主类,测试接待中心类的编写是否正确。
时间: 2024-03-10 08:45:17 浏览: 208
下面是该程序的实现:
```java
//定义接口
interface Receptionist {
String getIdentity(); //获取身份
}
//接待中心类
class ReceptionCenter {
public void reception(Receptionist r) {
String identity = r.getIdentity();
String food = "";
String accommodation = "";
if(identity.equals("学生")) {
food = "食堂";
accommodation = "宿舍";
} else if(identity.equals("教师")) {
food = "教师食堂";
accommodation = "学校公寓";
} else if(identity.equals("学生家长")) {
food = "招待所";
accommodation = "招待所";
}
System.out.println("您好,欢迎来到我们的学校!您的食宿安排如下:");
System.out.println("餐厅:" + food);
System.out.println("住宿:" + accommodation);
}
}
//学生类
class Student implements Receptionist {
public String getIdentity() {
return "学生";
}
}
//教师类
class Teacher implements Receptionist {
public String getIdentity() {
return "教师";
}
}
//学生家长类
class Parent implements Receptionist {
public String getIdentity() {
return "学生家长";
}
}
//主类
public class Main {
public static void main(String[] args) {
ReceptionCenter rc = new ReceptionCenter();
Student s = new Student();
Teacher t = new Teacher();
Parent p = new Parent();
rc.reception(s);
rc.reception(t);
rc.reception(p);
}
}
```
在上面的程序中,我们定义了一个接口`Receptionist`,该接口中包含了一个`getIdentity`方法,用于获取身份。然后,我们定义了一个接待中心类`ReceptionCenter`,该类中有一个`reception`方法,用于接待不同身份的人。在`reception`方法中,我们根据身份的不同,分别给出食和宿的安排。接下来,我们定义了三个类`Student`、`Teacher`和`Parent`,这些类都实现了`Receptionist`接口,并且在`getIdentity`方法中返回了不同的身份。最后,我们在主类中创建了一个`ReceptionCenter`对象和三个不同身份的对象,通过调用`reception`方法来测试程序的正确性。
当我们运行上面的程序时,将会输出以下结果:
```
您好,欢迎来到我们的学校!您的食宿安排如下:
餐厅:食堂
住宿:宿舍
您好,欢迎来到我们的学校!您的食宿安排如下:
餐厅:教师食堂
住宿:学校公寓
您好,欢迎来到我们的学校!您的食宿安排如下:
餐厅:招待所
住宿:招待所
```
可以看到,程序输出了不同身份的人的食和宿的安排,符合我们的预期。
阅读全文