Say I want to save ten bitcoins could I send them to myself and just not 'pick them up' with my client? In a way would I be storing the bitcoins in the blockchain and when I want them just start up the client? Or would it be possible for someone else to 'pick them up'? Or are the private keys already in the wallet file as soon as the payment is 'sent'?
Everything is already stored in the blockchain, and there is nothing to "pick up".
The blockchain stores: "A generate a block (25 btc now)" and "A sends 2 btc to B".
When you want to send bitcoins, you proof that you are "B" and sign a message saying "I own these coins (A->B) and want to send all of them (2 btc) to C".
Now "C" owns 2 bitcoins.
(This of ofc simplified alot, e.g. I am missing confirms/etc but you really need to understand the basics before you start learning the advanced)
Bitcoins themselves are not stored anywhere. The only things stored are (1) the blockchain, basically a record of all transactions, and (2) your wallet which most importantly contains your private key(s).
I think what you are talking about is to send Bitcoins to another wallet of yours but not update the new wallet yet. Meaning: not letting the client realize that a certain transaction in the blockchain belongs to its wallet. This is possible if you feel like it; you can keep the wallet disconnected from the network for example. You can always update your wallet later by connecting it or importing the blockchain and using
However in theory this would not matter at all until you send the coins to another address again. This then will put a new transaction record in the blockchain which you sign using your private key. At this point you publicly state that the coins are yours.
Say you generate a new Bitcoin address using a tool like bitaddress.org, you can immediately receive a payment on that address. Once you have received the payment, you already "own" the amount, because you have the private key to unlock those funds. The fact that the address is not in your wallet.dat doesn't matter. In that sense, there's nothing to "pick up" here.
You could of course import your private key into the client software so you can actually spend the funds at some point.
With real cash (dollar bills), possession is ownership. With Bitcoin, knowledge of the private key is ownership. If you have the private key, the money is yours.
See also: Brainwallet
Your client doesn't actually "store" anything; it's the blockchain that records how many bitcoins belong to a given address. If your client is not online when coins are sent to your address, this doesn't matter at all: the network will still acknowledge that those coins now belong to your address, and your client will report this as soon as you fire it up and connect it to the network. If this doesn't happen, then the coins will be lost and unusable by anyone.
I just downloaded bitaddress.org java file and experimented with sending a small amount to an address for which the private key has yet to be loaded. That money unfortunately disappeared. (i.e. when I loaded the corresponding private key nothing showed up)
On the other hand, sending money to an address with the corresponding private loaded in a client showns up quickly no problem.
hope this helps.
OH Wait! I spoke too soon. I did not see the transaction or look carefully but here it is:
Status: 39 confirmations, broadcast through 27 nodes Date: 4/12/13 16:08 Debit: -0.000111 BTC Credit: 0.000111 BTC Transaction fee: -0.0005 BTC Net amount: -0.0005 BTC Transaction ID: 0bba0d308dcd8c8f8141bf95ba4...etc.
I am still confused though because the transaction summary in QT shows the amount as -0.000611 (instead of the net of 0.0005)