关于并发锁的问题

[code="java"]
public class PrivateLock {

private final Object myLock = new Object();   
void someMethod()   
{   
    synchronized(myLock)   
    {   
        //访问或者修改person的状态   
    }   
}   

}

[/code]
请问这里说的私有锁保护的好处到底是什么?学习java并发并发编程实践的时候,看到这一段,有点不明白,
原文如下:
[color=blue]使用私有的锁对象,而不是对象的内部锁(或者任何其他的可公共访问的锁,有很多好处。私有的锁对象可以封装,这样客户代码无法得到它,然而可公共访问的锁允许客户代码涉足他的同步策略--正确的或者不正确的。客户不正确的得到另一个对象的锁,会引起活跃度方面的问题,另外要验证程序的正确的使用着一个可公共访问的锁,需要检查完整的程序,而不是一个单独的类。[/color]
对这一段解释,看的很模糊,那个大哥能详细阐述一下,为什么要这样,好处是什么。

举个例子吧

1、如
public class PrivateLock {

private final Object myLock = new Object();   
void someMethod()   
{   
    synchronized(this)   
    {   
        //访问或者修改person的状态   
    }   
}   

void someMethod2()

{

synchronized(this)

{

//访问或者修改person的状态

}

}

}

如果锁是this 则 someMethod 和 someMethod2 内部需要使用this同步 此时两个方法执行时只能串行

2、如果有人说 我只想每个方法的调用串行即可 可以这样
public class PrivateLock {

private final Object myLock1 = new Object();   
private final Object myLock2 = new Object();   
void someMethod()   
{   
    synchronized(myLock1)   
    {   
        //访问或者修改person的状态   
    }   
}   

void someMethod2()

{

synchronized(myLock2)

{

//访问或者修改person的状态

}

}

}

现在是两把锁 someMethod和someMethod2可并发 但每个方法是串行