If you have multiple contracts but have the same method name in multiple contracts, how to adjust this, do you need to specify the contract address?


Yes, the 0 is the address of the contract. So presumably you have deployed multiple contracts. They have different addresses.

You get the address of the contract when you initialize it. It is also printed by concordium-client.