Final answer:
The sharing button appears on a Salesforce object when the sharing model for the object is either private or public read-only. So, the correct option is option 3.
Step-by-step explanation:
The sharing button in a Salesforce environment appears based on the sharing model set for an object. If the sharing model is set to public read/write, the sharing button is not needed because all users can already view and edit the records. The sharing button is provided to allow users to share records with others when they don't have default access, which is why it generally appears in more restrictive sharing settings.
With that context, the correct scenario in which the sharing button appears is when the sharing model for the object is set to private or public read-only. This enables users with the appropriate permissions to manually share records with others who would not otherwise have access to them due to organization-wide default settings.