Object Oriented Programming using C#
Case Study
namespace MessageManagerSystem.Messages
{
[Serializable]
public class Message
{
const int COST = 1;
public virtual int Cost
{
get { return COST; }
}
private int clientID;
public int ClientID
{
get { return clientID; }
}
private String messageText;
public String MessageText
{
get { return messageText; }
}
private int daysRemaining;
public int DaysRemaining
{
get { return daysRemaining; }
set { daysRemaining = value; }
}
public Message(int clientID, String text, int daysRemaining)
{
this.clientID = clientID;
this.messageText = text;
this.daysRemaining = daysRemaining;
}
public void DecrementDays()
{
daysRemaining--;
}
public bool HasExpired()
{
return (daysRemaining <= 0);
}
public override String ToString()
{
return (messageText);
}
public override bool Equals(object obj)
{
Message m = (Message)obj;
return (clientID.Equals(m.ClientID) &&
messageText.Equals(m.MessageText));
}
public override int GetHashCode()
{
return (messageText + clientID).GetHashCode();
}
}
}