Visual J++ позволяет создавать, модифицировать и контролировать исходный код проектов несколькими
способами. Эта глава поможет Вам освоить работу с текстовым редактором среды
программирования Visual J++ (редактором Text) и такими средствами, как Class
Outline, WFC Component Builder и Object Browser.
Операции
с файлами в редакторе Text
В среду программирования
интегрирован текстовый редактор, который позволяет управлять исходными файлами,
модифицировать и распечатывать их. Большинство приемов работы покажется Вам
знакомым, если Вы уже пользовались другими текстовыми редакторами для Windows.
Кроме того, в Visual J++ 6.0 текстовый редактор дополнен новыми функциями, включая
автоматическое завершение операторов, динамическую проверку синтаксиса, взаимодействие
с Class Outline. И это лишь некоторые из функций IntelliSense, поддерживаемых
Visual J + + 6.0.
Разделение
окна в редакторе Text
Чтобы
разделить окно редактора Text:
Чтобы
вернуть окно в исходное состояние:
Чтобы
переместить или скопировать текст между частями длинного документа:
Просмотр
файла в полноэкранном режиме
Чтобы переключиться в полноэкранный режим или вернуться в исходный:
Поиск
и замена текста в отдельном файле
Чтобы
найти текст в отдельном файле:
Чтобы
заменить текст в отдельном файле:
Примечание
Чтобы заменить все вхождения искомого текста в файле, щелкните кнопку
Replace All.
Это приведет
к замене текущего выделенного фрагмента новым текстом, после чего будет выделено
следующее вхождение искомой строки.
Поиск
текста в нескольких файлах
Чтобы
найти текст в нескольких файлах:
Исходный
код часто группируется с применением парных ограничителей, в качестве которых
служат круглые, квадратные, фигурные и угловые скобки. Эти группы называются
уровнями. Редактор Text распознает вложенные уровни и находит соответствующий
парный ограничитель, даже если текущий уровень растянут на несколько страниц
и включает много подуровней. Редактор позволяет быстро переходить от начала
к концу любого уровня.
Чтобы
найти парный ограничитель:
Курсор ввода
перемещается вперед или назад к парному ограничителю. Повторная команда возвращает
курсор ввода в его начальную позицию. Если парного ограничителя нет, курсор
ввода остается на месте.
Для ускорения
доступа к часто используемым строкам исходного кода их помечают закладками.
Установив закладки, Вы переходите между ними, выбирая команды меню или нажимая
комбинации клавиш. Ненужную закладку можно удалить.
Чтобы
установить закладку:
- или —
Нажмите комбинации
клавиш Ctrl + K, Ctrl+K.
Если Вы активизировали
поля в окне редактора Text, то после установки закладки в левом поле напротив
строки появится светло-голубой прямоугольник.
Чтобы
перейти к следующей закладке:
— или —
Нажмите комбинации
клавиш Ctrl + K, Ctrl + N.
Чтобы
перейти к предыдущей закладке:
— или —
Нажмите комбинации
клавиш Ctrl+K, Ctrl + P.
Чтобы
удалить закладку:
— или —
Нажмите комбинации
клавиш Ctrl + K, Ctrl + K. Светло-голубой прямоугольник в левом поле напротив
строки исчезнет.
Чтобы
удалить все закладки:
— или —
Нажмите комбинации
клавиш Ctrl + K, Ctrl+L.
Выделение
прямоугольного фрагмента текста
Выделив прямоугольный
фрагмент текста, Вы сможете выполнять над ним такие операции, как вырезку, копирование,
удаление и смещение вправо или влево.
Чтобы
разрешить выделение прямоугольных фрагментов текста:
Чтобы
выделить прямоугольный фрагмент текста:
Когда Вы
отпустите левую кнопку мыши, выделенный фрагмент зафиксируется и над ним можно
будет выполнять самые разные операции.
Примечание
Чтобы отменить выделение фрагмента текста, щелкните левую кнопку мыши.
Написание
кода с автоматическим завершением операторов
Средство
Statement Completion (автоматическое завершение операторов) среды программирования
Visual J++ экономит время на поиске правильных ссылок. Оно автоматически открывает
окно со списками классов, их членов и параметрами методов в зависимости от контекста
текущего файла с исходным Java-кодом.
Для знакомства
с возможностями Statement Completion будет рассмотрен пример написания оператора
(операторов) с классами Java. lang. String и Java. lang. System. После сборки
и запуска программа выведет сообщение в консольное окно JView. В примере используются
следующие процедуры:
Примечание
Этот пример будет создан по Visual J++-шаблону Console Application.
Вы можете опробовать следующие процедуры на любом файле исходного Java-кода
в любом проекте Visual J+ + . Если же Вы решите полностью воспроизвести данный
пример и создать консольное приложение, пожалуйста, обратитесь к разделу «Создание
консольного приложения» главы 1 «Создание проектов» и выполните
описанные в нем процедуры, чтобы открыть соответствующий проект.
Включение
или отключение функций Statement Completion
Среда программирования
позволяет включать или отключать функции Auto List Members и Parameter Info
средства Statement Completion.
Чтобы
включить функции Statement Completion:
Примечание
Сбросив флажок Auto list members или Parameter information,
Вы отключите соответствующую функцию.
Написание
операторов с автоматическим завершением слов
В данном
примере, когда Вы будете набирать имена классов String и System и писать код,
создающий новый объект String, функция Word Completion предоставит возможность
выбирать нужные слова из списка, уточняя предлагаемый вариант по мере ввода
символов. Эта функция доступна в любом проекте Visual J++.
Примечание
Образцы кода, приведенные в следующем примере, были созданы в проекте
Visual J + + типа Console Application. Если Вы предпочтете полностью воспроизвести
данный пример и создать консольное приложение, обратитесь к разделу «Создание
консольного приложения» главы 1 «Создание проектов» и выполните
описанные в нем процедуры, чтобы открыть соответствующий проект.
Чтобы
выбрать элемент из списка, предоставляемого функцией Word Completion:
Visual J++ откроет
текстовый редактор и загрузит в него Ваш JAVA-файл, который с этого момента
можно будет редактировать.
Совет
Обратите внимание на красную волнистую линию, появившуюся под буквой
S. Поскольку сама по себе эта буква в контексте данной программы ничего не значит,
IntelliSense «намекает» на возможную синтаксическую ошибку. Подробнее
о такого рода знаках см. раздел «Динамический контроль синтаксиса»
далее в этой главе.
Совет
То же самое можно сделать, нажав комбинацию клавиш Ctrl+Пробел.
Совет
Вместо того чтобы последовательно набирать буквы, пока Statement
Completion не остановится на нужном элементе, можно самостоятельно прокрутить
список.
Чтобы
выбрать имя класса после ключевого слова new:
Теперь
оператор должен выглядеть так:
String myStr
= new String
Далее Вам
понадобится конструктор для создания нового объекта String. О том, как выбрать
конструктор String из списка, предлагаемого функцией Parameter Info, см. раздел
«Выбор замещенного метода» далее в этой главе.
Если Вы приблизительно
представляете, каким должно быть имя класса или элемента, то можете ускорить
его ввод по следующей процедуре.
Чтобы
ускоренно завершить набор слова:
В этом примере
Statement Completion поможет выбрать замещенный метод-конструктор для класса
String.
Примечание
Переходите к следующей процедуре, только если Вы уже выполнили процедуры,
описанные в предыдущем разделе. Иначе Вам не удастся воспроизвести операции,
рассматриваемые в этом разделе.
Прежде чем
продолжить, убедитесь, что в редактор Text загружен JAVA-файл, который содержит
такую строку кода:
String myStr
= new String
Чтобы
выбрать замещенный метод для класса:
На экране появится
окно с сигнатурой одного из методов-конструкторов для класса String. Наборный
счетчик в левой части этого окна сообщает, сколько замещенных конструкторов
доступно для класса String (11) и какой из них показывается в данный момент
(1).
Примечание
Для незамещенных методов и конструкторов вместо списка показывается
текстовое поле Parameter Info. Пример использования функции Parameter
Info см. в разделе «Формирование
списка аргументов с помощью Parameter Info» далее в этой главе.
В итоге оператор должен выглядеть так:
String myStr
= new String("Hello World!");
Statement
Completion выводит также список открытых методов и переменных-членов текущего
класса. Как открыть этот список для объекта String, описывается в следующем
разделе.
Выбор
методов из списка элементов
В этом примере
функция Member List средства Statement Completion поможет выбрать метод класса
String. Эта же процедура позволяет выбирать и переменные-члены.
Примечание
Переходите к следующей процедуре, только если Вы уже выполнили процедуры,
описанные в двух предыдущих разделах. Иначе Вам не удастся воспроизвести операции,
рассматриваемые в этом разделе.
Прежде чем
продолжить, убедитесь, что в редактор Text загружен JAVA-файл, который содержит
такую строку кода:
String myStr
= new String("Hello World!");
Чтобы
выбрать элемент класса в Member List:
Совет
Если список элементов не появился после того, как Вы ввели оператор-точку,
выберите из меню Edit команду List Members или нажмите клавиши
Ctrl+J. Но если то же самое будет происходить и в дальнейшем, проверьте, включена
ли поддержка Statement Completion.
Теперь
Ваш код должен выглядеть так:
String myStr = new String("Hello World!");
if(myStr.equalsIgnoreCase
О том, как
сформировать список аргументов метода с помощью функции Parameter Info средства
Statement Completion, см. следующий раздел.
Формирование
списка аргументов с помощью Parameter Info
В этом примере
функция Parameter Info средства Statement Completion используется для вывода
информации об аргументе метода equalsIgnoreCase,
Примечание
Переходите к следующей процедуре, только если Вы уже выполнили процедуры,
описанные в трех предыдущих разделах. Иначе Вам не удастся воспроизвести операции,
рассматриваемые в этом разделе.
Прежде
чем продолжить, убедитесь, что в редактор Text загружен JAVA-файл, который содержит
такие строки кода:
String myStr
= new String("Hello World!"); if(myStr.equalsIgnoreCase
Чтобы
сформировать список аргументов с помощью Parameter Info:
Примечание
В данном случае у метода лишь один параметр
(String pi). Если Вы выбираете метод, принимающий более одного аргумента,
IntelliSense показывает типы и порядок аргументов в объявлении метода. Когда
Вы вводите открывающую круглую скобку за именем такого метода, IntelliSense
выделяет полужирным начертанием первый аргумент. А по мере того, как Вы ставите
запятую за очередным аргументом, IntelliSense выделяет полужирным информацию
о следующем аргументе.
Совет
Если информация о параметрах не появилась после того, как Вы ввели открывающую
круглую скобку, выберите из меню Edit команду Parameter Info или
нажмите клавиши Ctrl + Shift + I. Но если то же самое будет происходить и в
дальнейшем, проверьте, включена ли поддержка Statement Completion.
Законченный оператор if должен выглядеть так:
if(myStr.equals!gnoreCase("hello
world!"))
{
System.out.println("The
strings are the same.");
}
else
{
System.out.println("The
strings are different.");
}
return;
Динамический
контроль синтаксиса
Visual J++
обеспечивает динамический контроль синтаксиса при наборе кода в редакторе Text.
Помимо информации, предоставляемой средством Statement Completion, Вы получаете
подсказки о возможных синтаксических ошибках: неправильно набранные в JAVA-файлах
элементы (имена классов и их членов, символы) подчеркиваются красной волнистой
линией, а в окне Task List появляется соответствующее пояснение.
Чтобы
получить пояснения по ошибке в элементе, подчеркнутом красной волнистой линией:
Совет
Если при очевидной синтаксической ошибке красная волнистая линия
не появилась, проверьте, включили ли Вы поддержку динамического контроля синтаксиса.
Пример, демонстрирующий
появление красной волнистой линии, см. в разделе «Написание операторов
с автоматическим завершением слов» ранее в этой главе.
Включение
и отключение функций динамического контроля синтаксиса
Среда программирования
Visual J++ позволяет включать и отключать отдельные функции динамического контроля
синтаксиса текстового редактора.
Чтобы
включить функции динамического контроля синтаксиса:
Примечание
Сброс флажка Check syntax as you type или Underline syntax
errors as you type приводит к отключению соответствующих функций.
Обновление
окна Class Outline из редактора Text
Visual J++
с помощью IntelliSense динамически обновляет иерархическую структуру Вашего
файла в окне Class Outline всякий раз, когда Вы добавляете метод, переменную-член
или класс через редактор Text. Если Вы хотите вставить в свой код комментарии
типа Javadoc, IntelliSense создает блок комментария, а затем отображает его
в нижней секции окна Class Outline.
Добавление
элементов в Class Outline из редактора Text
Хотя Visual
J++ предоставляет Class Outline и WFC Component Builder, которые помогают Вам
добавлять методы, переменные-члены, свойства, события и классы, все эти элементы
можно включать в JAVA-файл, просто набирая их код в редакторе Text. При этом
IntelliSense тут же выводит в окно Class Outline Вашего проекта соответствующий
значок для нового класса или элемента класса.
Следующая
процедура демонстрирует динамическое обновление Class Outline при добавлении
через редактор Text нового класса и метода в файл исходного кода.
Примечание
Примеры кода для этого и следующего раздела были созданы как Visual
J++-проект Console Application. Воспроизвести данные примеры можно в любом существующем
проекте Visual J++. А если Вы хотите создать проект консольного приложения,
то, прежде чем выполнять описанные ниже процедуры, прочтите раздел «Создание
консольного приложения» главы 1.
Чтобы
добавить в Class Outline новый класс из редактора Text:
class Greeting
{
}
Примечание
Когда Вы перемещаете курсор ввода в редакторе Text, Class Outline
не показывает, на какое определение в исходном коде Вы перешли. Чтобы синхронизировать
Class Outline с текущей позицией в исходном коде, щелкните этот участок правой
кнопкой мыши в редакторе Text и выберите из контекстного меню команду Sync
Class Outline.
Чтобы
добавить в Class Outline новый метод из редактора Text:
public static String
hello()
{
String strGreet = new
String("Hello World!");
return strGreet;
}
Примечание
Когда Вы перемещаете курсор ввода в редакторе Text, Class Outline
не показывает, на какое определение в исходном коде Вы перешли. Чтобы синхронизировать
Class Outline с текущей позицией в исходном коде, щелкните этот участок правой
кнопкой мыши в редакторе Text и выберите из контекстного меню команду Sync
Class Outline.
System. out. print In
(Greeting. hello()); return;
Hello
World!
О том, как
добавить в новый метод hello комментарии типа Javadoc, см. следующий раздел.
Добавление
в исходный код комментариев типа Javadoc
В нижней
части окна Class Outline находится секция для комментариев типа Javadoc. Если
в выбранном классе, методе или переменной-члене такой комментарий есть, IntelliSense
выводит в эту секцию его первое предложение.
Следующая
процедура иллюстрирует, как добавить Javadoc-комментарий в метод — в классы
и переменные-члены этот комментарий включается точно так же.
Примечание
В данной процедуре используется проект Console Application, куда
добавляется код, модифицирующий элементы в Class Outline. Переходите к ней,
только если Вы уже создали в базовом консольном приложении класс Greeting и
метод hello, описанные в предыдущем разделе. Иначе Вам не удастся воспроизвести
операции, рассматриваемые в этом разделе.
Чтобы
добавить Javadoc-комментарий в метод:
Visual J++ откроет
текстовый редактор и загрузит в него Ваш JAVA-файл.
На экране появится
окно Class Outline со свернутой структурой Вашего файла.
/** hello() - статический
метод без аргументов, который
* возвращает вызывающему
методу объект String. В данном
* случае всегда возвращается
"Hello World!". */
Не исключено,
что при создании Javadoc-комментариев в классах, методах и переменных-членах
Вам понадобится добавить в эти комментарии одно или несколько полей. IntelliSense
показывает список Javadoc-полей, доступных в Visual J+ + . В следующей процедуре
к ранее созданному Javadoc-комментарию добавляется поле author.
Чтобы
добавить поле в Javadoc-комментарий:
Visual J + + откроет
текстовый редактор и загрузит в него Ваш JAVA-файл.
IntelliSense откроет
список допустимых полей в Javadoc-комментариях.
Дважды щелкните в
списке элемент author.
Теперь Javadoc-комментарий
должен выглядеть примерно так:
/** hello()
- статический метод без аргументов, который
* возвращает
вызывающему методу объект String. В данном
* случае всегда
возвращается "Hello World!".
* @author Mary
Doe */
Управление
кодом через Class Outline
В окне Class Outline перечисляются все классы, интерфейсы и делегаты (delegates), определенные в JAVA-файле. Там же показываются и все импортированные классы, а также классы, содержащиеся в пакете этого файла. Всякий раз, когда Вы открываете JAVA-файл в редакторе Text, Class Outline автоматически отображает информацию, относящуюся к этому файлу.
По каждому
классу Class Outline выводит следующую информацию:
Используя
Class Outline, Вы можете в исходном файле:
Class Outline
доступен, когда в текстовом редакторе открыт JAVA-файл. Кроме того, его ярлычок
включается в панель Toolbox по умолчанию. А если Вы закрыли окно Class Outline,
то можете вновь открыть его, выбрав из меню -View команду Other Windows,
а из подменю — команду Document Outline.
Обновление
содержимого Class Outline
В большинстве
случаев элементы, отображаемые в Class Outline, автоматически синхронизируются
с соответствующими объявлениями в исходном тексте; например, если Вы модифицируете
имя метода в своем классе, это изменение немедленно отражается в окне Class
Outline. Однако, если Вы измените объявление наследуемого метода, Вам придется
вручную обновить содержимое Class Outline. Наследуемые элементы не обновляются
автоматически.
Чтобы обновить
содержимое Class Outline, щелкните его окно правой кнопкой мыши и выберите из
контекстного меню команду Refresh.
Class Outline
позволяет быстро перемещать курсор ввода к конкретному определению в исходном
тексте. Если это определение находится в другом JAVA-файле (как в случае наследуемого
метода) и он доступен на Вашем компьютере, тогда открывается этот файл и курсор
ввода перемещается на указанное определение. А если исходный файл недоступен,
открывается Object Browser.
Чтобы
перейти к выбранному определению:
Go to definition.
— или —
Дважды щелкните элемент
в Class Outline.
Примечание
Когда Вы перемещаете курсор ввода в текстовом редакторе, Class Outline
не показывает текущее определение. В этом случае, чтобы синхронизировать Class
Outline с текущей позицией в исходном файле, щелкните правой кнопкой мыши этот
участок в текстовом редакторе и выберите из контекстного меню команду Sync
Class Outline.
В Class Outline очень легко отредактировать основные атрибуты класса.
Чтобы модифицировать
объявление класса:
В этом случае в класс
автоматически вставляются директивы @com.register и @соm.transaction. Подробнее
о Microsoft Transaction Server см. раздел «Getting Started with Microsoft
Transaction Server» в электронной документации Visual Studio и Platform
SDK.
Примечание
Если Вы модифицируете объявление класса в редакторе Text, Class Outline автоматически
отражает эти изменения.
Class Outline
позволяет добавить метод или переменную-член в класс или новый класс в JAVA-файл.
Примечание
Если Вы добавляете объявление в редакторе Text, этот элемент автоматически
появляется и в Class Outline.
Чтобы
добавить новый метод:
Чтобы
добавить новую переменную-член:
Чтобы
добавить новый класс:
Добавление
объявлений для методов интерфейсов
С помощью
Class Outline Вы можете автоматически вставлять объявления методов для интерфейсов,
реализуемых Вашим классом.
Чтобы
добавить объявления для методов интерфейсов:
Class Outline
добавит объявления для каждого метода в данном интерфейсе. После этого Вы сможете
написать свою реализацию.
Class Outline
позволяет быстро удалить определение из JAVA-файла.
Чтобы
удалить определение:
Примечание
Если Вы удаляете определение в редакторе Text, Class Outline автоматически
отражает эти изменения.
Перемещение
или копирование определения
Используя
Class Outline, Вы легко переместите или скопируете определение метода, переменной-члена
или класса.
Чтобы
переместить или скопировать определение:
Примечание
Если Вы перемещаете или копируете определение в редакторе Text, Class
Outline автоматически отражает эти изменения.
Class Outline
отображает все методы, наследуемые классом от своего надкласса и остальных классов
в иерархии наследования. С помощью Class Outline Вы сможете быстро переопределить
наследуемый метод.
Примечание
Метод, помеченный как static или final, переопределять нельзя.
Чтобы
переопределить наследуемый метод:
Class Outline
позволяет установить в метод точку прерывания (breakpoint) для использования
в интегрированном отладчике.
Чтобы
установить точку прерывания:
Подробнее
о точках прерывания и процессе отладки см. главу 6 «Отладка приложений».
Модификация
компонентов с помощью WFC Component Builder
WFC Component Builder — инструмент, помогающий Вам добавлять свойства и события в Ваши WFC-компоненты. Он включает в код необходимые переменные-члены и методы и модифицирует класс Classlnfo Вашего компонента.
Используйте
WFC Component Builder для:
Подробнее
о WFC см. главу 11 «Введение в программирование на базе WFC» и главу
12 «Концепции программирования на базе WFC». Подробнее о мастерах
и средствах сборки (builders), поставляемых с Visual J+ + , см. главу
5 «Знакомство с мастерами и средствами сборки».
WFC Component
Builder позволяет легко добавлять и удалять определения свойств в компонентах,
построенных на базе WFC. Свойство обычно связано с закрытой переменной-членом,
которая хранит текущее значение свойства. Ваш компонент предоставляет открытые
методы get<ИмяСвойства> и sеt<ИмяСвойства>, предназначенные
для считывания и установки значения закрытой переменной-члена. (У свойства только
для чтения отсутствует метод set<ИмяСвойства>.) Подробнее о WFC-свойствах
см. главу 12 «Концепции программирования на базе WFC».
Когда Вы
добавляете свойство с помощью WFC Component Builder, в Ваш класс также включаются
соответствующие методы и переменная-член. Кроме того, в класс Classlnfo Вашего
компонента вносится информация об этом свойстве. (Classlnfo открывает информацию
о Вашем компоненте для браузера свойств типа окна Properties.)
Примечание
Если в Вашем компоненте нет определения Classlnfo, WFC Component
Builder сам включает его в Ваш класс.
А когда Вы
удаляете свойство с помощью WFC Component Builder, из Вашего класса автоматически
удаляются соответствующие методы, переменная-член и запись в Classlnfo.
Чтобы
открыть WFC Component Builder:
Чтобы
добавить свойство:
Чтобы
удалить свойство:
Примечание
Удаление свойства приводит к удалению связанных с ним методов, переменных-членов
и информации Classlnfo. Любой код, введенный Вами в эти методы, будет утрачен.
Однако редактор Text позволяет выполнять многоуровневую отмену операций удаления
после закрытия WFC Component Builder. При этом
Вы поочередно восстанавливаете удаленные элементы, выбирая из меню Edit команду
Undo.
WFC Component
Builder позволяет легко добавлять и удалять определения событий в компонентах,
построенных на базе WFC. Поскольку событие активизирует свой обработчик через
делегата, Ваш компонент должен предоставлять методы addОп<ИмяСобытия>
и геmоvеОn<ИмяСобытия> для добавления и удаления этого делегата.
Кроме того, в Вашем компоненте должен быть определен защищенный метод оп<ИмяСобытия>,
который вызывает событие. Подробнее о WFC-coбытиях см. главу 12 «Концепции
программирования на базе WFC». Когда Вы добавляете событие с помощью WFC
Component Builder, в Ваш класс также включаются соответствующие методы и переменная-член
для делегата. Кроме того, в класс Classlnfo Вашего компонента вносится информация
об этом событии. (Classlnfo открывает информацию о Вашем компоненте для браузера
свойств типа окна Properties.)
Примечание
Если в Вашем компоненте нет определения Classlnfo, WFC Component
Builder сам включает его в Ваш класс. А когда Вы удаляете событие с помощью
WFC Component Builder, из Вашего класса автоматически удаляются соответствующие
методы, делегат и запись в Classlnfo. Как открыть WFC Component Builder, см.
предыдущий раздел.
Чтобы
добавить событие:
Чтобы удалить
событие:
Примечание
Удаление события приводит к удалению связанных с ним методов, делегатов
и информации Classlnfo. Любой код, введенный Вами в эти методы, будет утрачен.
Однако редактор Text позволяет выполнять многоуровневую отмену операций удаления
после закрытия WFC Component Builder. При этом Вы поочередно восстанавливаете
удаленные элементы, выбирая из меню Edit команду Undo.
Просмотр
пакетов и библиотек в Object Browser
Object Browser
— удобное средство просмотра содержимого Java-пакетов и СОМ-библиотек. При этом
вовсе не обязательно добавлять компоненты в свой проект, даже если у Вас нет
их исходного кода. Используя Object Browser, Вы можете:
Чтобы открыть
Object Browser, выберите из меню View команду Other Windows, а
из подменю — команду Object Browser.
Просмотр
классов и их элементов
Object Browser
предоставляет два списка: основной (primary) и зависимый (dependent).
В первом можно просматривать только классы, только их элементы или и то и другое,
а во втором — элементы или, если в первом
списке выбран какой-то элемент, все классы, в которых он содержится.
Чтобы
выбрать режим просмотра в Object Browser:
Чтобы Вам
было проще отличать классы от их элементов, Object Browser выделяет первые полужирным
начертанием. Заметьте, что по умолчанию он группирует элементы в основном списке
в соответствии с тем, как они расположены в пакетах или библиотеках (названия
которых тоже выделяются полужирным начертанием). Для включения или отключения
такого группирования щелкните Object Browser правой кнопкой мыши и выберите
из контекстного меню команду Group by Packages/Libraries или воспользуйтесь
одноименной кнопкой на командной панели Object Browser.
Просмотр
информации о классах и их элементов
Object Browser
позволяет получать специфическую информацию о классах и их элементах в пакете
или библиотеке.
Просмотр
определений
Если на Вашем
компьютере имеется исходный код для пакета или библиотеки, Вы можете перейти
из Object Browser в любой класс или элемент, определенный в этом пакете или
библиотеке: укажите нужный класс или элемент, щелкните Object Browser правой
кнопкой мыши и выберите из контекстного меню команду View Definition.
Просмотр
скрытых элементов
Object Browser
способен отображать любые скрытые элементы СОМ-библиотек. Для переключения в
режим просмотра скрытых элементов щелкните Object Browser правой кнопкой мыши
и выберите из контекстного меню команду Show Hidden Members. Скрытые
элементы показываются серым цветом.
По умолчанию
Object Browser отображает лишь те пакеты и библиотеки, на которые можно ссылаться
из текущего решения, — в том числе все пакеты, включенные в решение, установленные
диспетчером Java Package Manager (JPM) и доступные по путям, заданным в Classpath.
Чтобы
выбрать просматриваемые пакеты и библиотеки:
Совет
Имена пакетов и библиотек, которые будут показаны в Object Browser,
выделяются полужирным начертанием.
Внимание
Добавление СОМ-компонентов или Java-пакето.в в Object Browser означает
лишь то, что Вы -получаете возможность их просматривать, — и больше ничего.
Чтобы реально включить СОМ-компонент в проект, его нужно импортировать. Как
это делается, см. раздел «Импорт СОМ-объектов» главы 17 «Сборка
и импорт СОМ-объектов».
А чтобы
задействовать в проекте Java-пакет, укажите его в Classpath (см. раздел «Переменная
окружения CLASSPATH» главы 9 «Компиляция приложений с помощью JVC»
и раздел «Настройка Classpath» главы 1 «Создание проектов»).
Группирование
и сортировка классов и их элементов
Object Browser
позволяет группировать или сортировать классы и их элементы по уровню доступа
или типу. По умолчанию ни группирование, ни сортировка не применяется.
Чтобы
сгруппировать или отсортировать классы и их элементы:
Примечание
Отображение заголовков групп возможно лишь в основном списке Object
Browser. Допустим, Вы сгруппировали элементы классов, но Object Browser показывает
в основном списке только классы. Когда Вы выберете какой-нибудь класс и его
элементы появятся в зависимом списке, последние будут разбиты по группам, но
никаких заголовков групп Вы не увидите. О просмотре классов и их элементов в
основном и зависимом списках см. раздел «Просмотр классов и их элементов»
ранее в этой главе.
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.