2014-01-05 2 views
2

Здесь мы имеем вложенный класс:Декларирование вложенных классов в отдельных файлах

class OuterClass { 
    ... 
    static class StaticNestedClass { 
     ... 
    } 

} 

Вместо того, чтобы писать их в том же файл, я могу объявить их в отдельных файлах?

Этот вопрос: Putting Nested Classes In Separate Files говорит мне использовать опцию рефакторинга, доступную в Eclipse. Я использую его, но я в конечном итоге с двумя файлами:

class OuterClass { 
    ... 
} 

и

class StaticNestedClass { 

} 

Но, насколько я понимаю, что это уже не вложенный класс, не так ли?

+4

Я имею в виду ... слово «вложенное» может ответить на это. –

+0

@BrianRoach: Я не вижу причины, почему это означает, что я не могу объявить вложенный класс в другой файл. Я имею в виду, это просто еще один файл. Компилятор мог бы сказать * «welp, я собираюсь схватить класс в этом файле и притвориться, что он вложен внутри этого другого» *. Просто сделать проект более организованным. Как C++, или Ruby, не знаю. – Voldemort

ответ

2

Вы не можете сделать это на Java.

Как примечание, если вы используете язык, который поддерживает разделяемые классы (например, C#) вы могли бы сделать

Файл 1:

partial class OuterClass { 
} 

Файл 2:

partial class OuterClass { 
    class StaticNestedClass { 

    } 
} 

но Java не имеет частичных классов, поэтому это не помогло бы в этой конкретной ситуации. В Java класс может быть объявлен только в одном файле.

0

Нет, вы не можете иметь их в отдельных исходных файлах, используя javac в качестве компилятора.

1

Вложенный класс - это класс, который буквально ВНУТРИ другого класса. Нет, невозможно иметь вложенный класс в отдельный файл, потому что тогда он больше не будет вложенным классом, это будет просто еще один класс.

Смежные вопросы