If I have for example a class along with a helper class to do some of its functionality, does it make sense to make it as an inner class.
public class F
From JAVA SE Docs
Why Use Nested Classes?
It is a way of logically grouping classes that are only used in one place: If a class is useful to only one other class, then it is logical to embed it in that class and keep the two together. Nesting such "helper classes" makes their package more streamlined.
It increases encapsulation: Consider two top-level classes, A and B, where B needs access to members of A that would otherwise be declared private. By hiding class B within class A, A's members can be declared private and B can access them. In addition, B itself can be hidden from the outside world.
So Yes, it makes sense to use FooHelper as an inner class.