OOP Plugin: Where should I place the action hooks in the class?

Since you are using OOP, you probably want to architecture your plugin more efficiently. This is fine, but you’ll be the one to structure your classes and build them.

So what if you put it in the __construct() function? That’s fine, as long as you initiate a new instance of the class. Putting it in a method (private or public) will give the same thing as long as you call that method from inside or outside of your class.

I do use OOP for almost all of the WordPress plugins I create. Usually, I use the construct() function to add hooks for enqueue(ing) CSS, Scripts or other actions and filters. However, this is completely up to you, and you are free to design your classes as you wish.