Descendants of ScriptableObject / MonoBehavior need to be in a script file with the same name as the class.
Unity automagically will allow you to use those classes then in the editor to assign them to fields (for example if you have a public ScriptableObject state field in your class).
As a sidenote: its common (and good) practice in C# that each class has its own file which has the same name as the class