(This may or may not be more information than the OP needed. But there may be confusion there worth clarifying).
Actually, Dianne, that's only true of top-level classes with the 'public' modifier. You can have top-level classes that are package- private in the same file -- but no more than one 'public'', and the file must be named with the same name as the class, plus the ".java" suffix. However -- that is ALMOST never done! Binxalot -- I'm afraid you're mistaken -- I'm reasonably certain that you have NOT seen all the methods and classes in one big java file. Either you've misunderstood what you were seeing, because it was all on one web page, or something else. Let's not worry about any confusion from web page formatting... If you were actually looking at .java files, then you were probably thrown off by one of these points: *) A java class definition cannot be split between files. All methods and fields will appear within the same file, which will contain the *complete* definition of that class. *) A java class definition can contain INNER class definitions. These are not independent definitions. If they do not include the 'static' keyword before the 'class' keyword, they can only be instantiated in the context of an instance of the outer class. If they DO include the 'static' keyword before the 'class' keyword, then you can view them as being somewhat akin to namespaces in intent. That is, the class name is available within the scope of that class; to be used elsewhere it needs to either be explicitly qualified with outer class name, e.g. (Outer.Inner, or com.example.java.Outer.Inner), or imported with the 'import static' statement. If you don't wish to do this, then you can instead use packages and make these inner classes top-level. Eclipse provides convenient commands to do this. Note that inner classes that have the 'public' modifier can be referenced outside the package, and those that have the 'protected' modifier can be referenced by subclasses of the outer class. Those with 'private' can only be accessed within the class, and those with no modifier can only be accessed by other classes within the same package. This is a bit more flexible than top-level classes, which can only be 'public' or default (i.e. private to the package). I hope this helps you read the code a bit easier. It's best to think of one .java file as being one complete unit; there may be inner and private classes, but it provides only one top-level class to other packages, and it provides the complete definition of that class. The compiler will output each class to its own .class file, including inner classes. They'll be in the same directory as other classes in the same package, but with names constructed to avoid conflicts. Anonymous (nameless) inner classes will get generated names. So all of these .class files have to be packaged up in an Java application. On Apr 20, 2:53 pm, Dianne Hackborn <[email protected]> wrote: > The Java compiler requires that each top-level class be in its own source > file. > On Tue, Apr 20, 2010 at 2:41 PM, Binxalot <[email protected]> wrote: > > I'm coming over from C# where I can make a namespace and then have > > each class placed into its own .cs file if I want, but in all of the > > examples I've seen for android all of the methods and classes are all > > in one big java file. > > > Is it possible to put my classes in to their own java files and then > > import those classes into a main program java file as needed like I do > > in C#? > > > -- > > You received this message because you are subscribed to the Google > > Groups "Android Developers" group. > > To post to this group, send email to [email protected] > > To unsubscribe from this group, send email to > > [email protected]<android-developers%2Bunsubs > > [email protected]> > > For more options, visit this group at > >http://groups.google.com/group/android-developers?hl=en > > -- > Dianne Hackborn > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them. > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group > athttp://groups.google.com/group/android-developers?hl=en -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

