There are two different types of accounts in Ethereum:
1) externally owned accounts (EOAs), controlled by users, often via software such as a wallet. They are accounts without any associated code or data storage.
Both types of accounts are identified by an Ethereum address.
2) contract accounts, controlled by the code () that is executed by the Ethereum Virtual Machine.They don't have private keys: the code "control themselves".