4-1 4-1-1 (Object) (State) (Behavior) ( ) ( ) ( method) ( properties) ( functions) 4-2
4-1-2 (Message) ( ) ( ) ( ) A B A ( ) ( ) ( YourCar) ( changegear) ( lowergear) 4-1-3 (Class) (Blueprint) 4-3
changegear changegear 50 40 4-4
4-1-4 (Encapsulation) C# Class private public Scanner 4-5
4-2 (Class Implement) ( ) -- 4-2-1 using System; public class Ex4211 // public class // instance variables ( data member) private int currentspeed; private int currentcadence; public int currentgear; // instance method ( member function) public void speed(int intspeed) currentspeed += intspeed; public void brake() currentspeed = 0; public void changegear(int GearNo) currentgear = GearNo; 4-6
public class // public class public class Car block (instance variables) (instance method) ; ( ); private int currentspeed; public void changegear(int GearNo) (access modifiers) (visibility modifiers) (access level) public private protected public private protected 4-7
"currentspeed" "currentcadence public protected ( 4-4 ) protected instance Class(Static) (Instance variables) (Instance methods) ( ) ( ) "static" gas gastank gas gastank public class Taxi public static int gastank; private int gas; public void fillgas(int qty) gas+=qty; // gastank-=qty; // 4-8
4-2-2 UML C# UML Unified Modeling Language UML C# UML UML UML UML UML + public - private () : String Class UML 4-9
4-2-3 Time Class CTime CTime 4-10
CTime bool settime(int hours,int mins,int secs); int gethours(); int getmins(); int getsecs(); void print(); bool Constructor CTime CTime(); CTime(int hours,int mins,int secs); default void (Signature) ( 2-1-5 ) Signature overloading 4-11
func(); func(int a); func(double a); func(int a, int b); Convert ToString () Convert.ToString(Bool) Convert.ToString(Byte) Convert.ToString(Char) Convert.ToString(Decimal) Convert.ToString(DateTime) Convert.ToString(Double) Convert.ToString(Int32) int m_hours; int m_mins; int m_secs; public private UML 4-12
(Constructors) public CTime() m_hours=0; m_mins=0; m_secs=0; CTime mytime 0 CTime mytime = new CTime(); CTime(int hours, int mins, int secs) m_hours= hours; m_mins= mins; m_secs= secs; CTime mytime 12 45 30 CTime mytime = new CTime(12,45,30); (member functions) public bool settime(int hours, int mins, int secs) if (!isvalidtime(hours, mins, secs)) // (3) return false; else m_hours=hours; m_mins=mins; m_secs=secs; return true; 4-13
hours, mins, secs true false public int gethours() return m_hours; m_hours public int getmins() return m_mins; m_mins public int getsecs() return m_secs; m_secs public void print() Console.Write(m_hours+":"); Console.Write((m_mins<10?"0":"")+m_mins+":"); Console.WriteLine((m_secs<10?"0":"")+m_secs); hh:mm:ss print ( 4:7:1 4:07:01) C# -?: (Bool expression? do if true : do if false) do if true do if false 0 10 0 ( "") (auxiliary function) SetTime isvalidtime 4-14
private bool isvalidtime(int hours,int mins,int secs) return ( hours >=0 && hours < 24 && mins >= 0 && mins < 60&& secs >= 0 && secs < 60 ); true false private isvalidtime Ctime UML public class CTime // data members private int m_hours; private int m_mins; private int m_secs; // constructors public CTime() m_hours=0; m_mins=0; m_secs=0; public CTime(int hours, int mins, int secs) m_hours= hours; 4-15
m_mins= mins; m_secs= secs; // member methods public bool settime(int hours, int mins, int secs) if (!isvalidtime(hours, mins, secs)) return false; else m_hours=hours; m_mins=mins; m_secs=secs; return true; public int gethours() return m_hours; public int getmins() return m_mins; public int getsecs() return m_secs; public void print() Console.Write(m_hours+":"); Console.Write((m_mins<10?"0":"")+m_mins+":"); Console.WriteLine((m_secs<10?"0":"")+m_secs); private bool isvalidtime(int hours,int mins,int secs) return ( hours >=0 && hours < 24 && mins >= 0 && mins < 60&& secs >= 0 && secs < 60 ); 4-16
(Testing Driver) CTime ByteCode using System; public class Ex4237 public static void Main() CTime mytime = new CTime(); // 1 CTime yourtime = new CTime(1,30,2); // 2 yourtime.print(); // 3 mytime.print(); // 4 if (mytime.settime(1,9,2)) // 5 mytime.print(); 2 3 CTime(int, int, int) print() 1:30:02 1 4 CTime() print() 0:00:00 5 settime (int, int, int) print() 1:09:02 Main() 4-17