先有接口的使用者,后有接口的实现者;
充值接口[充钱方法]
下面两者基于接口相分离
腾讯平台: 调用充值接口的充钱方法
你(游戏开发者): 实现充值接口执行具体的充钱动作(给钻石)
1 //充钱的接口 2 public interface Charge { 3 4 //充钱的方法 5 public boolean pay(int money); 6 7 } 8 9 //tc里面 10 public class Tecent { 11 12 //谁要使用服务,谁就来真正的充钱 13 public void service(Charge cg) { 14 15 System.out.println("想要服务,请先充值"); 16 17 boolean bl = cg.pay(200); //服务的使用者 18 19 if(bl) { 20 System.out.println("收到钱了,马上办事"); 21 } 22 23 } 24 25 } 26 27 public class MyGame implements Charge{ 28 29 30 //你的这个游戏,引导别人去充钱; 31 public boolean pay(int money) { 32 33 //玩家点击按钮,然后调用我游戏里面的充值服务; 34 System.out.println("请充钱"); //服务的提供者 35 36 return true; 37 } 38 39 }
枚举 (规范取值范围) 只能自己定义自己有多少个对象
1.1 简介
- 枚举类可以实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是默认继承Object类,因此枚举类不能显示继承其他父类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口。
- 使用enum定义、非抽象的枚举类默认会使用final修饰,因此枚举类不能派生子类。
- 枚举类的构造器只能使用private访问控制符,如果省略了构造器的访问控制符,则默认使用private修饰;如果强制指定访问控制符,则只能指定private修饰符。
- 枚举类的所有实例必须在枚举类的第一行显式列出,否则这个枚举类永远都不能产生实例。列出这些实例时,系统会自动添加public static final 修饰,无须程序员显式添加。
- 枚举类默认提供了一个values()方法,该方法可以很方便地遍历所有的枚举值
1.2 语法
1 enum Week{ 2 //这些大写字母表示就是枚举的实例对象; 3 MONDAY, TUESDAY, WEDNESDAY,THURSDAY,FRIDAY,SATURADAY,SUNDAY; 4 } 5 6 enum Week{ 7 8 MONDAY("周一"), TUESDAY("周二"), WEDNESDAY,THURSDAY,FRIDAY,SATURADAY,SUNDAY; 9 10 String ch; 11 private Week(String ch){ 12 this.ch = ch; 13 } 14 } 15 16 //枚举的构造器是私有的 17 //枚举只能在自己的首行代码实例化自己的对象 18 //枚举的实例对象,默认会加上 public static final修饰 19 public enum Week { //规定你只能有哪几个实例 20 21 //MONDAY: 就是枚举的实例,代表是一个枚举对象 22 //定义了7个Week的对象; 23 //实例变量名分别是 MONDAY , TUESDAY ..... 24 MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURADAY,SUNDAY; 25 26 //MONDAY : 就是一个具体的对象; public static final Week MONDAY = new Week(); 27 //TUESDAY : 也是一个具体的对象; public static final Week TUESDAY = new Week(); 28 29 //枚举可以有方法,可以有成员变量 30 String pt; 31 32 public void test() { 33 //this:当前对象 34 System.out.println("枚举里面的test方法" + this.name()); 35 } 36 }