That looks right to me. I've written and instantiated my own classes a lot, so usually I define them in their own file extending from Resource but I don't think you need to extend from anything.
extends Resource
class_name MyClass
Then elsewhere:
var my_class := MyClass.new()
Or without using class_name. Because it's generally awful currently and causes unending circular reference issues as the entire class is loaded just from defining a type. Instead I'll usually define the type as Resource instead just to avoid issues. Then load the actual class manually for explicitness and clarity.
extends Resource
Then elsewhere:
const MyClass = preload("res://my_class.gd")
----
var my_class := MyClass.new()
Pretty sure either of those solutions is all you need.