一.定义HandleAble接口,具备一个处理字符串数字的抽象方法方法HandleString(String num)。
处理方式1:取整数部分。
处理方式2:保留指定位小数,四舍五入。
public class Test1 {
public static void main(String[] args) {
String str = "23.23456789";
System.out.println("原数字字符串:" + str);
HandleAble s1 = new HandleAble() {
@Override
public String handleString(String str) {
return str.substring(0, str.indexOf("."));
}
};
String string = s1.handleString(str);
System.out.println("取整后:" + string);
int num = 4;
HandleAble s2 = new HandleAble() {
@Override
public String handleString(String str) {
int i = str.indexOf(".") + num + 1;
char c = str.charAt(i);
//System.out.println(c);
if (c <= '4') {
return str.substring(0, i).toString();
} else {
char c1 = (char) (str.charAt(str.indexOf(".") + num) + 1);
return str.substring(0, i - 1) + c1;
}
}
};
String sss = s2.handleString(str);
System.out.println("保留" + num + "位小数后:" + sss);
}
}
interface HandleAble {
public abstract String handleString(String str);
}
运行结果如下:
二.模拟玩家选择角色。
1.定义接口FightAble.
2. 抽象方法:specialFight。
3. 默认方法:commonFight,方法中打印"普通打击"。
4. 定义战士类.
5.实现FightAble接口,重写方法中打印"武器攻击".
6.定义法师类:
7. 实现FightAble接口,重写方法中打印"法术攻击"。
8.定义玩家类Player:
9.成员方法:FightAble select(String str),根据指令选择角色。
10.法力角色,选择法师。
11.武力角色,选择战士。
/**
* created by sheting on
* User: hl.c
* Date:2019/3/15
* Time: 22:00
*/
public class Test02 {
public static void main(String[] args) {
Player player = new Player();
String select = "法力角色";
System.out.println("选择:" + select);
FightAble f = player.select(select);
f.specialFight();
f.commonFight();
System.out.println("=================");
select = "武力角色";
System.out.println("选择:" + select);
FightAble f2 = player.select(select);
f2.specialFight();
f2.commonFight();
}
}
class Player {
public FightAble select(String str) {
if ("法力角色".equals(str)) {
return new FaShi();
} else if ("武力角色".equals(str)) {
return new ZhanShi();
}
return null;
}
}
class FaShi implements FightAble {
@Override
public void specialFight() {
System.out.println("法术攻击");
}
}
class ZhanShi implements FightAble {
@Override
public void specialFight() {
System.out.println("武器攻击");
}
}
interface FightAble {
public abstract void specialFight();
public default void commonFight() {
System.out.println("普通打击");
}
}
运行效果:
如有问题欢迎大家留言!!