All @ messages are public, and can be traded between anyone, whether or not they’re following each other (with the exception of blocked users.)
A direct message, however, can only be exchanged between two people who are already following each other. If someone isn’t following you, you can’t direct message them.
A Twitter direct message is a private message that will only be seen by a specific Twitter user instead of being posted on the public timeline.
The long way
To send a message to someone this way, from your Twitter home page, click on Direct Messages in the right hand side of the screen above the search box:
You’ll be taken to a page where you can send and receive these messages.
(This is where all your direct messages—sent and received—will be stored.)
At the top is a drop down list of all your followers:
Select the username you’d like to send a direct message to.
Type in your message in 140 characters or less and hit Send.
The user will be able to reply privately as well.
The short way
It’s possible to message someone directly just by preparing a normal tweet but prefacing it with D or DM (upper or lower case) and then, after a space, with their name: DM loosewire.
This is the same as the above method, and the same rules apply.
[...] Messaging via Twitter: Private [...]