Yes, it is best practice to create a class to represent your objects if you know that your objects should have a consistent and restricted set of properties/methods.

It is not possible to add these restrictions without creating a class. It is possible to create a 'helper' class which is not available outside the class in which you define it. To do that, you must define your helper class in the same .as file, but outside the package. I don't usually recommend this, as it's more difficult than standard classes for not much gain.