Can you clarfiy what is the exact funtionality that you require from this lock? Is it lock in case the object is being used by someone else(in case of a multithreaded environment), or is it that the object is not available/ visible to others?
Basically locking an object comes during synchronization areas.
synchronization means only one can access anything.
For example, say myself and u have the same debit card ie having same number on credit card ( we have two copies of credit card with same number).
Suppose i insert card into ATM, at that particular point of time, u are not allowed to access the database (i,e you cant touch data unless one card has finished its transcation) means when one transaction is accessing data, ( indirectly object is locked), u cant allow other transaction to access data.