The internal class Foo declaration will override the accessibility of the public void Fee() method, effectively making it internal.
In this case, using internal vs. public on the methods will have the same effect. The only reason I would choose public methods vs. internal methods in a case like this would be to ease transitioning to a public class in a future version, should you choose to do so.