Method Overloading If two methods of a class (whether both declared in the same class, or both inherited by a class, or one declared and one inherited) have the same name but different number or types of parameters, then the method name is said to be overloaded. Static Members and methods -------------------------- If a member is declared static, there exists exactly one copy of the field, no matter how many instances (possibly zero) of the class may eventually be created. If a method is declared static, then it can be called without reference to a particular object. They are also called _class member_ and _class method_. We use static members to associate data that is common to the entire class. For example, we can associate a counter to keep track of how many instance of this class has been created. Static methods can be used when the method does not need to use any member in a object. For example, the sin/cos function in Math class. Who is responsible ? -------------------- Depends on what causes the failure. If the failure is caused by the ignorant user, then the user is responsible. E.g : - "Mmm.. I wonder what does format do ?" - "This cup holder looks pretty cool !. Wow. It can play CDs too" If the failure is caused by programmer, then the programmer is responsible. For example, if (a = b) instead of (a == b). Designers are responsible for design fault that causes failure. Like : "Hey, let's use two digits to represent the year. That would save us 2 bytes" Computer hardware failure should be blamed on the hardware, or the hardware vendors. For instance, harddisk failure, dead mouse.