important java.util.Date; enum EnterExit { NewTaipeiMRT,TaipeiMRT } enum Organization { Enter,Exit } Public abstract class SmartCard{ private string cardID=""; private string issueDate=""; private Organization issueOrg; protect string getCardID(){ return cardID; } protect string getIssueDate(){ return issueDate; } protect Organization getIssueOrg(){ return issueOrg; } protect void setCardID(string cardID){ cardID=cardID; } protect void setIssueDate(string date){ issueDate=date; } protect void setIssueOrg(Organization org){ issueOrg=org; } public string nowDateToString(){ return new Date(). toString (); } public string toString (){}; } public class Smsecurity extends SmartCard{ private LinkedList<string> securityList; public Smsecurity (){}; public Smsecurity (string cardID, Organization org){ setCardID (cardID); setIssueOrg(org); }; public void addInfo(EnterExit enter){ securityList.add(nowDateToString ()+","+ enter.toString()); } public void addInfo(string date,EnterExit enter){ securityList.add(date+","+ enter.toString()); } public void addInfo(Security se){ string date=se.getDate(); EnterExit enter=se.getEnterExit(); securityList.add(date+","+ enter.toString()); } @override public string toString (){ System.out.println("*****Smart card "+getCardID ()+ "("+getIssueDate ()+","+getIssueOrg.toString() ); System.out.println("---Enter and exit info"); for(string info: securityList) { System.out.println("("+info+")"); } }; } Public class Security { private string date=""; private EnterExit enterExit; public Security (){}; public Security (EnterExit){}; public string getDate(){}; public EnterExit getEnterExit(){}; public void setDate(EnterExit){}; public void setDate(string, EnterExit){}; public string toString (){}; } public class Main{ public static void main(string []args){ Smsecurity sms=new Smsecurity ("SM001", Organization.NewTaipeiMRT); sms.addInfo ("2015/06/15 18:30:01" , EnterExit.Enter); sms.addInfo ("2015/06/15 20:16:01" , EnterExit.Exit); sms.addInfo ("2015/06/20 18:20:01" , EnterExit.Enter); sms.addInfo ( EnterExit.Exit); System.out.println(sms.toString()); } } }