difference between a customer, contact, user and an end-user ?

difference between a customer, contact, user and an end-user ?

Hello, 
What the difference between a customer, contact, user and end-user ? these 4 terminology are used in different parts, but are they the same meaning or different ?

Can someone give them a clear definition for each of them ?
Cheers / Olivier