Materials are conceptually associated with users. In order for a material to be persistently stored it either needs to be assigned to an object (a real user) or the Fake User option needs to be enabled for it. If neither is the case, then the unused material won't be saved. That is the reason why you're always creating materials linked to an object when using the user interface.
However this doesn't mean that a material can only be used for one object. You can assign a material to as many objects as you like, across different view layers and scenes.
Creating a material
A material can be created in the Material Properties. You will need to select or create a new material slot, then you can create a new material using the New button.
Alternatively you can create a new material based on another material by clicking on the New Material icon shown below:
Reusing existing materials
Once you've created a material, it can be assigned to other objects. Select the object in the 3D view and choose a material from the dropdown list.
Users and fake users
Materials that are currently without any user will be marked with a zero in front of its name in the dropdown list. If you don't assign this material to an object or activate the fake user option (the shield icon marked in yellow), it won't be saved in your project.
If a material has multiple users, then a button with a number will appear. You can create a separate copy of the material for the currently active object by clicking on the button (marked in red).
More information can be found in the manual.