题目如下
Game某游戏中有轰炸机、直升机、重型坦克、轻型坦克、飞行兵、步兵等六大兵种,下面设计一组类和接口,满足如下设计要求:
轰炸机、直升机均属于飞行器这一大类; 重型坦克、轻型坦克均属于坦克这一大类; 飞行兵、步兵均属于人这一大类;
重型坦克、轻型坦克、步兵均属于陆军;轰炸机、直升机、飞行兵均属于空军; 轰炸机、轻型坦克、步兵只能攻击陆军;
直升机、飞行兵、重型坦克即可攻击空军,也能攻击陆军。
代码如下,共有12个文件
Main.java
//Main.java
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
步兵 land1 = new 步兵("步兵", 'a');
轻型坦克 land2 = new 轻型坦克("轻坦", 'c');
重型坦克 land3 = new 重型坦克("重坦", 'a');
直升机 plane1 = new 直升机("直飞", 'b');
轰炸机 plane2 = new 轰炸机("轰机", 'b');
飞行兵 plane3 = new 飞行兵("飞兵", 'd');
land1.攻击(plane1);
land1.攻击(plane2);
land1.攻击(plane3);
land1.攻击(land2);
land1.攻击(land3);
}
}
人.java
//人.java
public class 人 {
}
陆军.java
//陆军.java
public interface 陆军 {
public void 攻击(Object obj);
}
空军.java
//空军.java
public interface 空军 {
public void 攻击(Object obj);
}
飞行器.java
//飞行器.java
public class 飞行器 {
}
坦克.java
//坦克.java
public class 坦克 {
}
步兵.java
//步兵.java
public class 步兵 extends 人 implements 陆军 {
String str;
char c;
public 步兵 (String str, char c){
this.str = str;
this.c = c;
if(c == 'a' || c == 'A' || c == 'd' || c == 'D') {
this.str = "A+D_" + Character.toUpperCase(c) + "_" + this.str;
} else if(c == 'b' || c == 'B') {
this.str = "B_" + Character.toUpperCase(c) + "_" + this.str;
} else if(c == 'c' || c == 'C') {
this.str = "C_" + Character.toUpperCase(c) + "_" + this.str;
}
}
@Override
public void 攻击(Object obj) {
// TODO Auto-generated method stub
System.out.print(str + " 遇见 " + obj.toString() + ":");
if(str.charAt(0) == obj.toString().charAt(0)) {
System.out.println(" 不能攻击!");
} else {
if(obj instanceof 重型坦克)
System.out.println("可以攻击陆军");
else if(obj instanceof 轻型坦克)
System.out.println("可以攻击陆军");
else if(obj instanceof 步兵)
System.out.println("可以攻击陆军");
else
System.out.println("不能攻击空军");
}
}
@Override
public String toString() {
// TODO Auto-generated method stub
return str;
}
}
轻型坦克.java
//轻型坦克.java
public class 轻型坦克 extends 坦克 implements 陆军 {
String str;
char c;
public 轻型坦克(String str, char c) {
this.str = str;
this.c = c;
if (c == 'a' || c == 'A' || c == 'd' || c == 'D') {
this.str = "A+D_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'b' || c == 'B') {
this.str = "B_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'c' || c == 'C') {
this.str = "C_" + Character.toUpperCase(c) + "_" + this.str;
}
}
@Override
public void 攻击(Object obj) {
// TODO Auto-generated method stub
System.out.print(str + " 遇见 " + obj.toString() + ":");
if (str.charAt(0) == obj.toString().charAt(0)) {
System.out.println(" 不能攻击!");
} else {
if (obj instanceof 重型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 轻型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 步兵)
System.out.println("可以攻击陆军");
else
System.out.println("不能攻击空军");
}
}
@Override
public String toString() {
// TODO Auto-generated method stub
return str;
}
}
重型坦克.java
//重型坦克.java
public class 重型坦克 extends 坦克 implements 陆军 {
String str;
char c;
public 重型坦克(String str, char c) {
this.str = str;
this.c = c;
if (c == 'a' || c == 'A' || c == 'd' || c == 'D') {
this.str = "A+D_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'b' || c == 'B') {
this.str = "B_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'c' || c == 'C') {
this.str = "C_" + Character.toUpperCase(c) + "_" + this.str;
}
}
@Override
public void 攻击(Object obj) {
// TODO Auto-generated method stub
System.out.print(str + " 遇见 " + obj.toString() + ":");
if (str.charAt(0) == obj.toString().charAt(0)) {
System.out.println(" 不能攻击!");
} else {
if (obj instanceof 重型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 轻型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 步兵)
System.out.println("可以攻击陆军");
else
System.out.println("不能攻击空军");
}
}
@Override
public String toString() {
// TODO Auto-generated method stub
return str;
}
}
飞行兵.java
//飞行兵.java
public class 飞行兵 extends 人 implements 空军 {
String str;
char c;
public 飞行兵(String str, char c) {
this.str = str;
this.c = c;
if (c == 'a' || c == 'A' || c == 'd' || c == 'D') {
this.str = "A+D_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'b' || c == 'B') {
this.str = "B_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'c' || c == 'C') {
this.str = "C_" + Character.toUpperCase(c) + "_" + this.str;
}
}
@Override
public void 攻击(Object obj) {
// TODO Auto-generated method stub
System.out.print(str + " 遇见 " + obj.toString() + ":");
if (str.charAt(0) == obj.toString().charAt(0)) {
System.out.println(" 不能攻击!");
} else {
if (obj instanceof 重型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 轻型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 步兵)
System.out.println("可以攻击陆军");
else
System.out.println("可以攻击空军");
}
}
@Override
public String toString() {
// TODO Auto-generated method stub
return str;
}
}
直升机.java
//直升机.java
public class 直升机 extends 飞行器 implements 空军 {
String str;
char c;
public 直升机(String str, char c) {
this.str = str;
this.c = c;
if (c == 'a' || c == 'A' || c == 'd' || c == 'D') {
this.str = "A+D_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'b' || c == 'B') {
this.str = "B_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'c' || c == 'C') {
this.str = "C_" + Character.toUpperCase(c) + "_" + this.str;
}
}
@Override
public void 攻击(Object obj) {
// TODO Auto-generated method stub
System.out.print(str + " 遇见 " + obj.toString() + ":");
if (str.charAt(0) == obj.toString().charAt(0)) {
System.out.println(" 不能攻击!");
} else {
if (obj instanceof 重型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 轻型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 步兵)
System.out.println("可以攻击陆军");
else
System.out.println("可以攻击空军");
}
}
@Override
public String toString() {
// TODO Auto-generated method stub
return str;
}
}
轰炸机.java
//轰炸机.java
public class 轰炸机 extends 飞行器 implements 空军 {
String str;
char c;
public 轰炸机(String str, char c) {
this.str = str;
this.c = c;
if (c == 'a' || c == 'A' || c == 'd' || c == 'D') {
this.str = "A+D_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'b' || c == 'B') {
this.str = "B_" + Character.toUpperCase(c) + "_" + this.str;
} else if (c == 'c' || c == 'C') {
this.str = "C_" + Character.toUpperCase(c) + "_" + this.str;
}
}
@Override
public void 攻击(Object obj) {
// TODO Auto-generated method stub
System.out.print(str + " 遇见 " + obj.toString() + ":");
if (str.charAt(0) == obj.toString().charAt(0)) {
System.out.println(" 不能攻击!");
} else {
if (obj instanceof 重型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 轻型坦克)
System.out.println("可以攻击陆军");
else if (obj instanceof 步兵)
System.out.println("可以攻击陆军");
else
System.out.println("可以攻击空军");
}
}
@Override
public String toString() {
// TODO Auto-generated method stub
return str;
}
}
本文地址:http://liuyanzhao.com/3345.html
转载请注明