I’m not sure of a way of precreating the Component and adding it to a specific object. You can use AddComponent to create a new component object, and then set the properties on it that you want.
GameObject Bob=(GameObject) Instantiate(Resources.Load("Bob"),Vector3.zero,Quaternion.identity);
Apple apple = Bob.AddComponet<Apple>();
apple.setName("Green Apple");
As an post-script, I generally recommend using the generic version of AddComponent rather than the version that takes a string. It makes your code more type-safe, and makes it easier on the tooling if you want to later rename the “Apple” class to something else (maybe it becomes the Fruit class instead of the Apple class).
If you need to keep track of certain content within the Component then use it later for the recently created game object, simply create a new component for the object and transfer the variables from the old component to the newly created one.