The paper considers the problems and the solutions that are concerned with the extension of Java with Higher Order mechanisms. We start from the motivations namely the code reusability and the code expressivity. Through the description of the JavaΩ project we discuss the design of constructs for Higher Order methods, methods as parameters and for closures that can be integrated in Java and whose implementation must preserve re-targetability and portability of the Java compilers and of the JVM. We give the formal definition of such constructs, including the formalization of a translation semantics which can be converted into a source-to-source translation and implemented as one-pass preprocessor. Examples of the use of the formalized constructs are included.