For the most part, languages don't care about the order that methods are listed in a class definition. Here are some guidelines. List important topics first; think always of the reader (the human reader, that is) and try to make their job easier. Constructors are usually the most important topic, and hence are usually listed first. Put public features before private ones. Again, this is because it is the public features that are most important to the human reader. Break long lists into groups. For example, organize methods around high level abstractions, and group them accordingly. Within a group list items in alphabethical order. These are guidelines, and as such are not always applicable, but if you keep in mind the meta guideline of making it easy to read and find something, you won't go far wrong.