A method of obfuscating an object-oriented program is provided. A program
is provided that is defined in terms of a plurality of classes. Each of
the classes has at least one of a field and a method. At least two of the
plurality of classes are combined into a combined class. When the at
least two classes are combined, at least one field from at least one of
the two classes is included in the combined class, and/or at least one
method from at least one of the two classes is included in the combined
class. After the at least two classes are combined, the program is
transmitted.