java基础总结 --- enum枚举的常量相关方法、自动售货机(状态模式)例子

这篇博客深入探讨了Java中的enum枚举类型,包括枚举常量的相关方法,并通过一个自动售货机的实例,详细阐述了如何运用状态模式来实现不同状态的切换,展示了枚举在设计模式中的应用。
摘要由CSDN通过智能技术生成
package com.zghw.base.enumx;

import java.text.DateFormat;
import java.util.Date;
/**
 * 允许程序员为enum实例编写方法,从而为每个enum实例赋予各自不同的行为。
 * 要实现常量相关的方法,你需要为enum定义一个或多个abstract方法,
 * 然后为每个enum实例实现该抽象方法
 * @author zghw
 *
 */
public enum ConstantSpecificMethod {
  DATE_TIME{
	  String getInfo(){
		  return DateFormat.getInstance().format(new Date());
	  }
  },
  CLASSPATH{
	  String getInfo(){
		  return System.getenv("CLASSPATH");
	  }
  },
  VERSION{
	  //实现抽象接口方法
	  String getInfo(){
		  return System.getProperty("java.version");
	  }
	  //重写方法
	  void print(){
		  System.out.println("重写了"+this);
	  }
  };
  abstract String getInfo();
  void print(){
	  System.out.println(this);
  }
  public static void main(String args[]){
	  for(ConstantSpecificMethod c: ConstantSpecificMethod.values()){
		  c.print();
		  System.out.println(c.getInfo());
	  }
  }
  /**
   * 在面向对象设计中,不同的行为与不同的类关联。而通过常量相关的方法,
   * 每个enum实例可以具备自己独特的行为,说明每个enum实例就像一个独特的类。
   * 在调用getInfo()方法时,体现了多态。
   */
}

package com.zghw.base.enumx;

import java.util.EnumSet;

/**
 * 洗车服务菜单实例
 * 
 * @author zghw
 *
 */
public class CarWash {
	public enum Cycle {
		UNDERBODY {
			void action() {
				System.out.println(this);
			}
		},
		WHEELWASH {
			void action() {
				System.out.println(this);
			}
		},
		PERWASH {
			void action() {
				System.out.println(this);
			}
		},
		BASIC {
			void action() {
				System.out.pri
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值