The Field Permission Example module shows how you can restrict view and edit permissions within your field implementation. It adds a new field type called Fieldnote. Fieldnotes appear as simple text boxes on the create/edit form, and as sticky notes when viewed. By 'sticky note' we mean 'Post-It Note' but that's a trademarked term.
To see this field in action, add it to a content type or user profile. Go to the permissions page (admin/people/permissions) and look at the 'Field Permission Example' section. This allows you to change which roles can see and edit Fieldnote fields.
Creating different users with different capabilities will let you see these behaviors in action. Fieldnote helpfully displays a message telling you which permissions it is trying to resolve for the current field/user combination.
Definitely look through the code to see various implementation details.