к оглавлению   к 4GL - визуальному программированию

Редактирование кода

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:

  1. Поместите курсор мыши на маркер разделения окна в верхней части вертикальной полосы прокрутки.
  2. Когда курсор превратится в две горизонтальные полоски со стрелками, указывающими вверх и вниз, перетащите маркер в нужную позицию.

Чтобы вернуть окно в исходное состояние:

Чтобы переместить или скопировать текст между частями длинного документа:

  1. Разделите окно на две секции.
  2. В первой секции найдите исходный фрагмент кода.
  3. Во второй секции — участок кода, куда Вы хотите переместить или скопировать этот фрагмент.
  4. Выделите и перетащите фрагмент кода из первой секции во вторую.

Просмотр файла в полноэкранном режиме

Чтобы переключиться в полноэкранный режим или вернуться в исходный:

Поиск и замена текста в отдельном файле

Чтобы найти текст в отдельном файле:

  1. Переместите курсор ввода в тот участок файла, откуда Вы хотите начать поиск.
  2. Выберите из меню Edit команду Find and Replace. На экране появится диалоговое окно Find.
  3. В текстовое поле рядом с кнопкой Find введите строку искомого текста. Нужный текст можно выбрать и из списка строк, уже использовавшихся при поиске.
  4. В списке Look In выберите строку Current Document.
  5. Щелкните кнопку Find. В исходном коде будет выделено первое вхождение указанной строки текста.
  6. Для продолжения поиска снова щелкните кнопку Find.

Чтобы заменить текст в отдельном файле:

  1. Переместите курсор ввода в тот участок файла, откуда Вы хотите начать замену.
  2. Выберите из меню Edit команду Find and Replace. На экране появится диалоговое окно Find.
  3. В текстовое поле рядом с кнопкой Find введите строку искомого текста. Нужный текст можно выбрать и из списка строк, уже использовавшихся при поиске.
  4. В списке Look In выберите строку Current Document.
  5. В текстовое поле рядом с кнопкой Replace введите строку заменяющего текста.
  6. Щелкните кнопку Replace. В исходном коде будет выделено первое вхождение указанной строки текста.

Примечание Чтобы заменить все вхождения искомого текста в файле, щелкните кнопку Replace All.

  1. Снова щелкните кнопку Replace.

Это приведет к замене текущего выделенного фрагмента новым текстом, после чего будет выделено следующее вхождение искомой строки.

Поиск текста в нескольких файлах

Чтобы найти текст в нескольких файлах:

  1. Выберите из меню Edit команду Find and Replace. На экране появится диалоговое окно Find.
  2. В текстовое поле рядом с кнопкой Find введите строку искомого текста. Нужный текст можно выбрать и из списка строк, уже использовавшихся при поиске.
  3. В списке Look In выберите типы файлов, в которых Вы собираетесь вести поиск.
  4. Щелкните кнопку Browse, чтобы открыть диалоговое окно Look In.
  5. Выделите папку верхнего уровня, с которой следует начать поиск.
  6. Щелкните кнопку Add. Имя этой папки появится в нижнем поле диалогового окна Look In.
  7. Щелкните кнопку ОК, чтобы вернуться в диалоговое окно Find.
  8. Установите флажок Subfolders, если Вы хотите вести поиск и в файлах, которые хранятся папках, вложенных в ранее выбранную Вами папку верхнего уровня.
  9. Щелкните кнопку Find — начнется поиск и в нижнем поле диалогового окна Find появится список файлов, содержащих искомую строку текста.
  10. Дважды щелкните один из файлов в этом списке. Откроется окно текстового редактора, в котором содержимое файла будет прокручено до выделенной строки с искомым текстом.

Поиск парных ограничителей

Исходный код часто группируется с применением парных ограничителей, в качестве которых служат круглые, квадратные, фигурные и угловые скобки. Эти группы называются уровнями. Редактор Text распознает вложенные уровни и находит соответствующий парный ограничитель, даже если текущий уровень растянут на несколько страниц и включает много подуровней. Редактор позволяет быстро переходить от начала к концу любого уровня.

Чтобы найти парный ограничитель:

  1. Поместите курсор ввода непосредственно перед или после одного из ограничителей.
  2. Нажмите комбинацию клавиш Ctrl + ].

Курсор ввода перемещается вперед или назад к парному ограничителю. Повторная команда возвращает курсор ввода в его начальную позицию. Если парного ограничителя нет, курсор ввода остается на месте.

Переход по закладкам

Для ускорения доступа к часто используемым строкам исходного кода их помечают закладками. Установив закладки, Вы переходите между ними, выбирая команды меню или нажимая комбинации клавиш. Ненужную закладку можно удалить.

Чтобы установить закладку:

  1. Поместите курсор ввода в строку, которую Вы хотите пометить закладкой.
  2. Выберите из меню Edit команду Bookmarks, а из подменю — команду Toggle Bookmark.

    - или —

    Нажмите комбинации клавиш Ctrl + K, Ctrl+K.

Если Вы активизировали поля в окне редактора Text, то после установки закладки в левом поле напротив строки появится светло-голубой прямоугольник.

Чтобы перейти к следующей закладке:

Чтобы перейти к предыдущей закладке:

Чтобы удалить закладку:

  1. Поместите курсор ввода в строку, помеченную закладкой.
  2. Выберите из меню Edit команду Bookmarks, а из подменю — команду Toggle Bookmark.

    — или —

    Нажмите комбинации клавиш Ctrl + K, Ctrl + K. Светло-голубой прямоугольник в левом поле напротив строки исчезнет.

Чтобы удалить все закладки:

Выделение прямоугольного фрагмента текста

Выделив прямоугольный фрагмент текста, Вы сможете выполнять над ним такие операции, как вырезку, копирование, удаление и смещение вправо или влево.

Чтобы разрешить выделение прямоугольных фрагментов текста:

  1. Выберите из меню Tools команду Options — появится диалоговое окно Options.
  2. Раскройте узел Text Editor.
  3. Затем раскройте узел Per Language и выберите Java.
  4. В разделе Settings активизируйте переключатель Box Selection.

Чтобы выделить прямоугольный фрагмент текста:

  1. Щелкните начало выделяемого фрагмента.
  2. Удерживая левую кнопку мыши в нажатом состоянии и перемещая мышь, расширьте область выделения до нужных размеров.

Когда Вы отпустите левую кнопку мыши, выделенный фрагмент зафиксируется и над ним можно будет выполнять самые разные операции.

Примечание Чтобы отменить выделение фрагмента текста, щелкните левую кнопку мыши.

Написание кода с автоматическим завершением операторов

Средство 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:

  1. Выберите из меню Tools команду Options — на экране появится одноименное диалоговое окно.
  2. На левой панели раскройте узел Text Editor, затем — узел Per Language (щелкая знак «плюс» рядом с этими узлами).
  3. Выберите строку Java, чтобы открыть страницу свойств Text Editor/ Per Language/Java.
  4. В разделе Statement Completion этой страницы свойств установите флажки Auto list members и Parameter information. Visual J++ включает функции Auto List Members и Parameter Info no умолчанию.

Примечание Сбросив флажок Auto list members или Parameter information, Вы отключите соответствующую функцию.

Написание операторов с автоматическим завершением слов

В данном примере, когда Вы будете набирать имена классов String и System и писать код, создающий новый объект String, функция Word Completion предоставит возможность выбирать нужные слова из списка, уточняя предлагаемый вариант по мере ввода символов. Эта функция доступна в любом проекте Visual J++.

Примечание Образцы кода, приведенные в следующем примере, были созданы в проекте Visual J + + типа Console Application. Если Вы предпочтете полностью воспроизвести данный пример и создать консольное приложение, обратитесь к разделу «Создание консольного приложения» главы 1 «Создание проектов» и выполните описанные в нем процедуры, чтобы открыть соответствующий проект.

Чтобы выбрать элемент из списка, предоставляемого функцией Word Completion:

  1. Выберите из меню View команду Project Explorer — откроется окно Project Explorer.
  2. Раскройте узел проекта, щелкнув знак «плюс» слева от его имени.
  3. Щелкните правой кнопкой мыши JAVA-файл, содержащий метод main Вашего проекта ,(по умолчанию — Classl.java), и выберите из контекстного меню команду View Code.

    Visual J++ откроет текстовый редактор и загрузит в него Ваш JAVA-файл, который с этого момента можно будет редактировать.

  4. Понаблюдайте за тем, как ведет себя функция Word Completion применительно к классу String. Введите букву S между скобками метода main и оставьте курсор в позиции справа от этой буквы.

Совет Обратите внимание на красную волнистую линию, появившуюся под буквой S. Поскольку сама по себе эта буква в контексте данной программы ничего не значит, IntelliSense «намекает» на возможную синтаксическую ошибку. Подробнее о такого рода знаках см. раздел «Динамический контроль синтаксиса» далее в этой главе.

  1. Выберите из меню Edit команду Complete Word — Вы увидите список классов и других элементов, распознаваемых IntelliSense.

Совет То же самое можно сделать, нажав комбинацию клавиш Ctrl+Пробел.

  1. Теперь, когда список все еще присутствует на экране, введите букву Т. Statement Completion выделяет в списке StackOverflowError — первый элемент, который начинается с букв ST в контексте данной программы.
  2. Далее введите букву R, и Statement Completion сместит подсветку на элемент String.
  3. Нажмите клавишу Tab, чтобы вставить в оператор слово String. Выделенный в списке элемент можно вставить в свой оператор (туда, где находится курсор ввода) не только нажатием клавиши Tab, но и любой другой, кроме алфавитно-цифровой.

Совет Вместо того чтобы последовательно набирать буквы, пока Statement Completion не остановится на нужном элементе, можно самостоятельно прокрутить список.

Чтобы выбрать имя класса после ключевого слова new:

  1. Продолжайте набор оператора и введите следующий код: String myStr = new
  2. Вставьте пробел после new, и Statement Completion откроет список имен классов, доступных в рамках Вашей программы.
  3. Наберите STR (или столько букв, сколько понадобится), чтобы в списке был выделен элемент String.
  4. Нажмите клавишу Tab. За оператором new появится String.

Теперь оператор должен выглядеть так:

String myStr = new String

Далее Вам понадобится конструктор для создания нового объекта String. О том, как выбрать конструктор String из списка, предлагаемого функцией Parameter Info, см. раздел «Выбор замещенного метода» далее в этой главе.

Если Вы приблизительно представляете, каким должно быть имя класса или элемента, то можете ускорить его ввод по следующей процедуре.

Чтобы ускоренно завершить набор слова:

  1. Переместите курсор ввода на новую строку в JAVA-файле и наберите SY.
  2. Нажмите клавиши Ctrl + Пробел. Statement Completion завершает слово (System) и вставляет его в код, так как это единственный элемент, который начинается с SY. А если бы таких элементов было больше, Statement Completion открыла бы список для выбора.

Выбор замещенного метода

В этом примере Statement Completion поможет выбрать замещенный метод-конструктор для класса String.

Примечание Переходите к следующей процедуре, только если Вы уже выполнили процедуры, описанные в предыдущем разделе. Иначе Вам не удастся воспроизвести операции, рассматриваемые в этом разделе.

Прежде чем продолжить, убедитесь, что в редактор Text загружен JAVA-файл, который содержит такую строку кода:

String myStr = new String

Чтобы выбрать замещенный метод для класса:

  1. Поместите курсор ввода непосредственно за последним словом String и введите открывающую круглую скобку.

    На экране появится окно с сигнатурой одного из методов-конструкторов для класса String. Наборный счетчик в левой части этого окна сообщает, сколько замещенных конструкторов доступно для класса String (11) и какой из них показывается в данный момент (1).

Примечание Для незамещенных методов и конструкторов вместо списка показывается текстовое поле Parameter Info. Пример использования функции Parameter Info см. в разделе «Формирование списка аргументов с помощью Parameter Info» далее в этой главе.

  1. Щелкайте любое место наборного счетчика, прокручивая сигнатуры методов-конструкторов до тех пор, пока не найдете такой, который принимает аргумент String. В данном примере подобному критерию отвечает 11-й конструктор.
  2. Теперь введите «Hello World!»;.

В итоге оператор должен выглядеть так:

String myStr = new String("Hello World!");

Statement Completion выводит также список открытых методов и переменных-членов текущего класса. Как открыть этот список для объекта String, описывается в следующем разделе.

Выбор методов из списка элементов

В этом примере функция Member List средства Statement Completion поможет выбрать метод класса String. Эта же процедура позволяет выбирать и переменные-члены.

Примечание Переходите к следующей процедуре, только если Вы уже выполнили процедуры, описанные в двух предыдущих разделах. Иначе Вам не удастся воспроизвести операции, рассматриваемые в этом разделе.

Прежде чем продолжить, убедитесь, что в редактор Text загружен JAVA-файл, который содержит такую строку кода:

String myStr = new String("Hello World!");

Чтобы выбрать элемент класса в Member List:

  1. На новой строке введите: if(myStr.
  2. Как только Вы введете оператор-точку после myStr, Statement Completion откроет список методов класса String.

Совет Если список элементов не появился после того, как Вы ввели оператор-точку, выберите из меню Edit команду List Members или нажмите клавиши Ctrl+J. Но если то же самое будет происходить и в дальнейшем, проверьте, включена ли поддержка Statement Completion.

  1. Наберите equalsl, чтобы в списке Member List был выделен метод equalsIgnoreCase класса String.
  2. Нажмите клавишу Tab — после оператора-точки появится метод equalsIgnoreCase.

Теперь Ваш код должен выглядеть так:

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:

  1. Продолжите написание оператора If, введя сразу за myStr. equalsIgnoreCase открывающую круглую скобку. Parameter Info показывает объявление метода с единственным параметром — String pi (он выделяется полужирным начертанием шрифта).

Примечание В данном случае у метода лишь один параметр (String pi). Если Вы выбираете метод, принимающий более одного аргумента, IntelliSense показывает типы и порядок аргументов в объявлении метода. Когда Вы вводите открывающую круглую скобку за именем такого метода, IntelliSense выделяет полужирным начертанием первый аргумент. А по мере того, как Вы ставите запятую за очередным аргументом, IntelliSense выделяет полужирным информацию о следующем аргументе.

Совет Если информация о параметрах не появилась после того, как Вы ввели открывающую круглую скобку, выберите из меню Edit команду Parameter Info или нажмите клавиши Ctrl + Shift + I. Но если то же самое будет происходить и в дальнейшем, проверьте, включена ли поддержка Statement Completion.

  1. После открывающей круглой скобки наберите: "hello world!"))

    Законченный оператор if должен выглядеть так:

    if(myStr.equals!gnoreCase("hello world!"))

  2. Теперь, используя функции Word Completion, Member List и Parameter Info средства Statement Completion, завершите пример и введите после оператора if следующий код:

    {

    System.out.println("The strings are the same.");

    }

    else

    {

    System.out.println("The strings are different.");

    }

    return;

  3. Соберите эту программу.
  4. В редакторе Text поместите курсор на оператор return (последний оператор в коде этой программы), щелкните правой кнопкой мыши и выберите из контекстного меню команду Run To Cursor.
  5. Результат выполнения программы появится в консольном окне JView: The strings are the same.

Динамический контроль синтаксиса

Visual J++ обеспечивает динамический контроль синтаксиса при наборе кода в редакторе Text. Помимо информации, предоставляемой средством Statement Completion, Вы получаете подсказки о возможных синтаксических ошибках: неправильно набранные в JAVA-файлах элементы (имена классов и их членов, символы) подчеркиваются красной волнистой линией, а в окне Task List появляется соответствующее пояснение.

Чтобы получить пояснения по ошибке в элементе, подчеркнутом красной волнистой линией:

  1. Поместите курсор на красную волнистую линию. IntelliSense показывает Error Tip, наиболее подходящий в контексте Вашего исходного кода. В ряде случаев просто выводится сообщение «Syntax Error».

Совет Если при очевидной синтаксической ошибке красная волнистая линия не появилась, проверьте, включили ли Вы поддержку динамического контроля синтаксиса.

  1. Щелкните правой кнопкой мыши и выберите из контекстного меню команду Error Help, чтобы получить справочную информацию о данной ошибке.

Пример, демонстрирующий появление красной волнистой линии, см. в разделе «Написание операторов с автоматическим завершением слов» ранее в этой главе.

Включение и отключение функций динамического контроля синтаксиса

Среда программирования Visual J++ позволяет включать и отключать отдельные функции динамического контроля синтаксиса текстового редактора.

Чтобы включить функции динамического контроля синтаксиса:

  1. Выберите из меню Tools команду Options.
  2. На левой панели диалогового окна Options раскройте узел Text Editor.
  3. Выберите строку Java Tasks — откроется страница свойств с разделами Tasks и Error display.
  4. В разделе Tasks установите флажок Check syntax as you type.
  5. В разделе Error display установите флажок Underline syntax errors as you type. 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:

  1. В окне Project Explorer щелкните знак «плюс» слева от имени своего проекта.
  2. Дважды щелкните имя или -значок JAVA-файла, содержащего метод main (по умолчанию Classl.java).
    Visual J++ откроет текстовый редактор и загрузит в него Ваш JAVA-файл.
  3. Выберите из меню View команду Other Windows, а из подменю -команду Document Outline.
    На экране появится окно Class Outline со свернутой структурой Вашего файла.
  4. В текстовом редакторе ваедите после закрывающей фигурной скобки определения класса Classl следующий код:

    class Greeting

    {

    }

  5. Обратите внимание: в окне Class Outline появился значок только что созданного Вами класса Greeting.

Примечание Когда Вы перемещаете курсор ввода в редакторе Text, Class Outline не показывает, на какое определение в исходном коде Вы перешли. Чтобы синхронизировать Class Outline с текущей позицией в исходном коде, щелкните этот участок правой кнопкой мыши в редакторе Text и выберите из контекстного меню команду Sync Class Outline.

Чтобы добавить в Class Outline новый метод из редактора Text:

  1. В окне Class Outline раскройте класс Greeting, чтобы увидеть значки Superclasses и Inherited Members.
  2. В текстовом редакторе введите после открывающей фигурной скобки класса Greeting следующий код:

    public static String hello()

    {

    String strGreet = new String("Hello World!");

    return strGreet;

    }

  3. Обратите внимание: в окне Class Outline появился значок только что созданного Вами метода hello.

Примечание Когда Вы перемещаете курсор ввода в редакторе Text, Class Outline не показывает, на какое определение в исходном коде Вы перешли. Чтобы синхронизировать Class Outline с текущей позицией в исходном коде, щелкните этот участок правой кнопкой мыши в редакторе Text и выберите из контекстного меню команду Sync Class Outline.

  1. Для проверки метода hello класса Greeting добавьте в метод main своего приложения такой код:

    System. out. print In (Greeting. hello()); return;

  2. Соберите программу.
  3. В редакторе Text щелкните правой кнопкой мыши слово return (последний оператор в коде этой программы) и выберите из контекстного меню команду Run To Cursor.
  4. Посмотрите на результаты в консольном окне JView:

    Hello World!

О том, как добавить в новый метод hello комментарии типа Javadoc, см. следующий раздел.

Добавление в исходный код комментариев типа Javadoc

В нижней части окна Class Outline находится секция для комментариев типа Javadoc. Если в выбранном классе, методе или переменной-члене такой комментарий есть, IntelliSense выводит в эту секцию его первое предложение.

Следующая процедура иллюстрирует, как добавить Javadoc-комментарий в метод — в классы и переменные-члены этот комментарий включается точно так же.

Примечание В данной процедуре используется проект Console Application, куда добавляется код, модифицирующий элементы в Class Outline. Переходите к ней, только если Вы уже создали в базовом консольном приложении класс Greeting и метод hello, описанные в предыдущем разделе. Иначе Вам не удастся воспроизвести операции, рассматриваемые в этом разделе.

Чтобы добавить Javadoc-комментарий в метод:

  1. В окне Project Explorer щелкните знак «плюс» слева от имени своего проекта.
  2. Дважды щелкните имя или значок JAVA-файла, содержащего метод main (по умолчанию Classl.java).

    Visual J++ откроет текстовый редактор и загрузит в него Ваш JAVA-файл.

  3. Выберите из меню View команду Other Windows, а из подменю -команду Document Outline.

    На экране появится окно Class Outline со свернутой структурой Вашего файла.

  4. В окне Class Outline раскройте класс Greeting, чтобы увидеть значки Superclasses и Inherited Members, а также разверните метод hello.
  5. В редакторе Text введите над объявлением метода* hello символы, открывающие Javadoc-комментарий (/**). IntelliSense создаст блок комментария, вставив в код закрывающие символы (*/).
  6. После открывающих символов Javadoc-комментария введите:

    /** hello() - статический метод без аргументов, который

    * возвращает вызывающему методу объект String. В данном

    * случае всегда возвращается "Hello World!". */

  7. В окне Class Outline выберите метод hello. Обратите внимание: в нижней секции этого окна появилось первое предложение комментария.

Не исключено, что при создании Javadoc-комментариев в классах, методах и переменных-членах Вам понадобится добавить в эти комментарии одно или несколько полей. IntelliSense показывает список Javadoc-полей, доступных в Visual J+ + . В следующей процедуре к ранее созданному Javadoc-комментарию добавляется поле author.

Чтобы добавить поле в Javadoc-комментарий:

  1. В окне Project Explorer щелкните знак «плюс» слева от имени своего проекта.
  2. Дважды щелкните имя или значок JAVA-файла, содержащего метод main (по умолчанию Classl.java).

    Visual J + + откроет текстовый редактор и загрузит в него Ваш JAVA-файл.

  3. В Javadoc-комментарий в методе hello введите знак @ за последним предложением, но перед закрывающими символами.

    IntelliSense откроет список допустимых полей в Javadoc-комментариях.

  4. Дважды щелкните в списке элемент 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.

Чтобы перейти к выбранному определению:

  1. В окне Class Outline щелкните правой кнопкой мыши элемент, к определению которого Вы хотите перейти.
  2. Выберите из контекстного меню команду

    Go to definition.

    — или —

    Дважды щелкните элемент в Class Outline.

Примечание Когда Вы перемещаете курсор ввода в текстовом редакторе, Class Outline не показывает текущее определение. В этом случае, чтобы синхронизировать Class Outline с текущей позицией в исходном файле, щелкните правой кнопкой мыши этот участок в текстовом редакторе и выберите из контекстного меню команду Sync Class Outline.

Изменение объявления класса

В Class Outline очень легко отредактировать основные атрибуты класса.

Чтобы модифицировать объявление класса:

  1. В окне Class Outline щелкните правой кнопкой мыши имя нужного класса.
  2. Выберите из контекстного меню команду Class Properties.
  3. В списке Access выберите модификатор доступа. Вложенные (внутренние) классы могут быть объявлены открытыми (Public), защищенными (Protected), закрытыми (Private) или по умолчанию [Default (package)], а невложенные классы — открытыми или по умолчанию. О вложенных классах см. раздел «Inner Classes» в Java Language Specification.
  4. В списке Modifiers выберите дополнительные модификаторы: Abstract, Final или Static. (Статическими можно объявлять только вложенные классы.)
  5. Для вставки в класс Javadoc-комментариев введите нужный текст в поле Javadoc comment.
  6. Если Вы предоставляете свой класс как WFC-компонент, установите флажок Include WFC Component Support (Classlnfo), чтобы включить класс Classlnfo. (Данный флажок доступен только для невложенных классов.) Classlnfo используется для описания свойств и событий компонента.
  7. Если Вы предоставляете свой класс как СОМ-объект, установите флажок Enabled н разделе COM Support. Тогда в Ваш класс включается директива @com.register — для его регистрации как СОМ-класса; после этого он станет доступным другим приложениям, поддерживающим СОМ. (Данный флажок предназначен только для невложенных классов.)
  8. Если Вы хотите дополнить свой класс поддержкой Microsoft Transaction Server, установите флажок Enabled в разделе1 MTS Support. (Данный флажок предназначен только для невложенных классов.) Заметьте: так как поддержка транзакций возможна лишь для СОМ-классов, активизация данного флажка приводит к активизации и одноименного флажка в разделе COM Support. После этого Вы можете выбрать в списке один из следующих параметров:
  1. Щелкните кнопку OK, чтобы изменения вступили в силу.

Примечание Если Вы модифицируете объявление класса в редакторе Text, Class Outline автоматически отражает эти изменения.

Добавление нового объявления

Class Outline позволяет добавить метод или переменную-член в класс или новый класс в JAVA-файл.

Примечание Если Вы добавляете объявление в редакторе Text, этот элемент автоматически появляется и в Class Outline.

Чтобы добавить новый метод:

  1. В окне Class Outline щелкните правой кнопкой мыши имя класса, в котором будет определен новый метод, и выберите из контекстного меню команду Add Method.
  2. В диалоговом окне Add Method введите имя метода в поле Name.
  3. В поле со списком Return Type укажите тип возвращаемого значения.
  4. Для определения параметров метода щелкните в поле Parameters кнопку с многоточием:
  5. В списке Access выберите модификатор доступа. Методы могут быть объявлены открытыми (Public), защищенными (Protected), закрытыми (Private) или по умолчанию [Default (package)].
  6. В списке Modifiers выберите дополнительные модификаторы: Abstract, Final, Static, Synchronized или Native.
  7. Для вставки в метод Javadoc-комментариев введите нужный текст в поле Javadoc comment.
  8. Щелкните кнопку Add, чтобы включить объявление метода в класс (метод автоматически появится и в Class Outline).

Чтобы добавить новую переменную-член:

  1. В окне Class Outline щелкните правой кнопкой мыши имя класса, в котором будет определена новая переменная-член, и выберите из контекстного меню команду Add Member Variable.
  2. В диалоговом окне Add Member Variable введите имя переменной-члена в поле Name.
  3. В поле со списком Data Type укажите тип этой переменной.
  4. В списке Access выберите модификатор доступа. Переменные-члены могут быть объявлены открытыми (Public), защищенными (Protected), закрытыми (Private) или по умолчанию [Default (package)].
  5. В списке Modifiers выберите дополнительные модификаторы: Final, Static, Volatile или Transient.
  6. Если Вы хотите инициализировать переменную-член, введите ее начальное значение в поле Initial Value.
  7. Для добавления к переменной-члену Javadoc-комментариев введите нужный текст в поле Javadoc comment.
  8. Щелкните кнопку Add, чтобы ввести переменную-член в свой файл (она автоматически появится и в Class Outline).

Чтобы добавить новый класс:

  1. Для определения вложенного класса щелкните в окне Class Outline правой кнопкой мыши имя «несущего» класса, а для определения класса верхнего уровня — имя любого класса или само окно Class Outline.
  2. Выберите из контекстного меню команду Add Class.
  3. В диалоговом окне Add Class введите имя класса в поле Name.
  4. Чтобы вложить новый класс в тот, который выбран в Class Outline, установите флажок Create a nested class. О вложенных классах см. раздел «Inner Classes» в Java Language Specification.
  5. В списке Access выберите модификатор доступа. Классы верхнего уровня могут быть объявлены открытыми (Public) или по умолчанию [Default (package)], а вложенные классы — открытыми (Public), защищенными (Protected), закрытыми (Private) или по умолчанию [Default (package)].
  6. В списке Modifiers выберите дополнительные модификаторы: Abstract, Final или Static.
  7. Для вставки в класс Javadoc-комментариев введите нужный текст в поле Javadoc comment.
  8. Щелкните кнопку Add, чтобы включить объявление класса в свой файл (класс автоматически появится и в Class Outline).

Добавление объявлений для методов интерфейсов

С помощью Class Outline Вы можете автоматически вставлять объявления методов для интерфейсов, реализуемых Вашим классом.

Чтобы добавить объявления для методов интерфейсов:

  1. В окне Class Outline раскройте узел Implemented Interfaces.
  2. Щелкните имя интерфейса правой кнопкой мыши и выберите из контекстного меню команду Add Method Stubs.

Class Outline добавит объявления для каждого метода в данном интерфейсе. После этого Вы сможете написать свою реализацию.

Удаление определения

Class Outline позволяет быстро удалить определение из JAVA-файла.

Чтобы удалить определение:

  1. В окне Class Outline щелкните удаляемый элемент правой кнопкой мыши.
  2. Выберите из контекстного меню команду Delete — определение будет удалено из исходного файла.

Примечание Если Вы удаляете определение в редакторе Text, Class Outline автоматически отражает эти изменения.

Перемещение или копирование определения

Используя Class Outline, Вы легко переместите или скопируете определение метода, переменной-члена или класса.

Чтобы переместить или скопировать определение:

  1. В окне Class Outline щелкните нужный элемент правой кнопкой мыши.
  2. Выберите из контекстного меню команду Cut (для перемещения элемента) или Сору (для копирования элемента).
  3. Щелкните правой кнопкой мыши то место, где Вы хотите вставить перемещаемый или копируемый элемент:
  4. Выберите из контекстного меню команду Paste.

Примечание Если Вы перемещаете или копируете определение в редакторе Text, Class Outline автоматически отражает эти изменения.

Переопределение метода

Class Outline отображает все методы, наследуемые классом от своего надкласса и остальных классов в иерархии наследования. С помощью Class Outline Вы сможете быстро переопределить наследуемый метод.

Примечание Метод, помеченный как static или final, переопределять нельзя.

Чтобы переопределить наследуемый метод:

  1. В окне Class Outline раскройте узел Inherited Members, относящийся к нужному классу. Этот узел содержит как методы, так и переменные-члены, но переопределять можно только методы.
  2. Щелкните нужный метод правой кнопкой мыши и выберите из контекстного меню команду Override Method.
  3. В JAVA-файл будет вставлено объявление для этого метода, и Вы сможете написать свою реализацию.

Установка точки прерывания

Class Outline позволяет установить в метод точку прерывания (breakpoint) для использования в интегрированном отладчике.

Чтобы установить точку прерывания:

  1. В окне Class Outline щелкните правой кнопкой мыши имя нужного метода.
  2. Выберите из контекстного меню команду Insert Breakpoint. Для проверки дважды щелкните имя данного метода в Class Outline, и Вы перейдете к его определению в исходном файле. На левом поле должен быть значок, обозначающий точку прерывания.
  3. Для удаления точки прерывания щелкните правой кнопкой мыши имя метода и выберите из контекстного меню команду Remove 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:

  1. Откройте в редакторе Text исходный файл своего компонента.
  2. В окне Class Outline щелкните правой кнопкой мыши имя нужного класса и выберите из контекстного меню команду WFC Component Builder.

Чтобы добавить свойство:

  1. В секции Properties окна WFC Component Builder щелкните кнопку Add.
  2. В диалоговом окне Add WFC Property введите в поле Name имя свойства.
  3. В списке Data Type укажите тип значения свойства. (Вы можете сами ввести тип класса, который отсутствует в списке, но перечислен в Classpath или доступен диспетчеру Java Package Manager.)
  4. В списке Category можете выбрать категорию для данного свойства, что позволит сгруппировать его с близкими свойствами в окне Properties.
  5. В поле Description введите описание свойства. Такие описания отображаются в окне Properties.
  6. Если Вы хотите, чтобы свойство было только для чтения, установите флажок Read-only Property. (При этом в класс не добавляется метод set<ИмяСвойства>.)
  7. Для создания связанной переменной-члена установите флажок Declare Member Variable. В поле Associated Member Variable показывается имя этой переменной-члена.
  8. Щелкните кнопку Add.
  9. Для добавления следующего свойства повторите все описанные операции. (Добавляя с помощью WFC Component Builder большое количество элементов, периодически щелкайте кнопку Apply, чтобы сохранять вносимые изменения.)
  10. Щелкните кнопку ОК, чтобы закрыть WFC Component Builder.

Чтобы удалить свойство:

  1. В секции Properties окна WFC Component Builder выберите удаляемое свойство.

Примечание Удаление свойства приводит к удалению связанных с ним методов, переменных-членов и информации Classlnfo. Любой код, введенный Вами в эти методы, будет утрачен. Однако редактор Text позволяет выполнять многоуровневую отмену операций удаления после закрытия WFC Component Builder. При этом Вы поочередно восстанавливаете удаленные элементы, выбирая из меню Edit команду Undo.

  1. Щелкните кнопку Delete.
  2. Для удаления следующего свойства повторите все описанные операции. (Удаляя с помощью WFC Component Builder большое количество элементов, периодически щелкайте кнопку Apply, чтобы сохранять вносимые изменения.)
  3. Щелкните кнопку ОК, чтобы закрыть WFC Component Builder.

Добавление и удаление событий

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, см. предыдущий раздел.

Чтобы добавить событие:

  1. В секции Events окна WFC Component Builder щелкните кнопку Add.
  2. В диалоговом окне Add WFC Event введите в поле Name имя события.
  3. В списке Data Type укажите тип события. (Вы можете сами ввести тип, отсутствующий в списке, если классы с именами <ТипСобытия> и <ТипСобытия>Handler перечислены в Classpath или доступны диспетчеру Java Package Manager.)
  4. В списке Category можете выбрать категорию для данного события, что позволит сгруппировать его с близкими событиями в окне Properties.
  5. В поле Description введите описание события. Такие описания отображаются в окне Properties.
  6. Щелкните кнопку Add.
  7. Для добавления следующего события повторите все описанные операции. (Добавляя с помощью WFC Component Builder большое количество элементов, периодически щелкайте кнопку Apply, чтобы сохранять вносимые изменения.)
  8. Щелкните кнопку ОК, чтобы закрыть WFC Component Builder.

Чтобы удалить событие:

  1. В секции Events окна WFC Component Builder выберите удаляемое событие.

Примечание Удаление события приводит к удалению связанных с ним методов, делегатов и информации Classlnfo. Любой код, введенный Вами в эти методы, будет утрачен. Однако редактор Text позволяет выполнять многоуровневую отмену операций удаления после закрытия WFC Component Builder. При этом Вы поочередно восстанавливаете удаленные элементы, выбирая из меню Edit команду Undo.

  1. Щелкните кнопку Delete.
  2. Для удаления следующего события повторите все описанные операции. (Удаляя с помощью WFC Component Builder большое количество элементов, периодически щелкайте кнопку Apply, чтобы сохранять вносимые изменения.)
  3. Щелкните кнопку ОК, чтобы закрыть WFC Component Builder.

Просмотр пакетов и библиотек в Object Browser

Object Browser — удобное средство просмотра содержимого Java-пакетов и СОМ-библиотек. При этом вовсе не обязательно добавлять компоненты в свой проект, даже если у Вас нет их исходного кода. Используя Object Browser, Вы можете:

Чтобы открыть Object Browser, выберите из меню View команду Other Windows, а из подменю — команду Object Browser.

Просмотр классов и их элементов

Object Browser предоставляет два списка: основной (primary) и зависимый (dependent). В первом можно просматривать только классы, только их элементы или и то и другое, а во втором — элементы или, если в первом списке выбран какой-то элемент, все классы, в которых он содержится.

Чтобы выбрать режим просмотра в Object Browser:

  1. Для просмотра классов в основном списке щелкните Object Browser правой кнопкой мыши и выберите из контекстного меню команду Show Classes. To же самое можно сделать, щелкнув кнопку Show Classes на командной панели Object Browser.
  2. Для просмотра элементов классов в основном списке щелкните Object Browser правой кнопкой мыши и выберите из контекстного меню команду Show Members. To же самое можно сделать, щелкнув кнопку Show Members на командной панели 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.

Чтобы выбрать просматриваемые пакеты и библиотеки:

  1. Щелкните Object Browser правой кнопкой мыши и выберите из контекстного меню команду Select Current Packages/Libraries или воспользуйтесь одноименной кнопкой на командной панели Object Browser.
  2. Диалоговое окно Select Packages/Libraries покажет список пакетов и библиотек, доступных для просмотра. Узел Solution содержит Java-проекты, относящиеся к Вашему решению, а узел Other Libraries and Packages — следующие вложенные узлы:
  3. Пометьте флажки рядом с именами пакетов и библиотек, которые Вы хотите просмотреть в Object Browser, и сбросьте их рядом с именами тех, которые Вы исключаете из просмотра. Пакет или библиотека появится в Object Browser, только если выбраны все его (ее) узлы. (По умолчанию, выбрав какой-то элемент, Вы выбираете и остальные узлы, относящиеся к пакету или библиотеке.) Если узел помечен серым флажком, значит, часть элементов не выбрана.

Совет Имена пакетов и библиотек, которые будут показаны в Object Browser, выделяются полужирным начертанием.

  1. Если Вы хотите добавить элементы в узлы COM Libraries и Other Java Packages, щелкните кнопку Add.

Внимание Добавление СОМ-компонентов или Java-пакето.в в Object Browser означает лишь то, что Вы -получаете возможность их просматривать, — и больше ничего. Чтобы реально включить СОМ-компонент в проект, его нужно импортировать. Как это делается, см. раздел «Импорт СОМ-объектов» главы 17 «Сборка и импорт СОМ-объектов».

А чтобы задействовать в проекте Java-пакет, укажите его в Classpath (см. раздел «Переменная окружения CLASSPATH» главы 9 «Компиляция приложений с помощью JVC» и раздел «Настройка Classpath» главы 1 «Создание проектов»).

  1. Щелкните кнопку ОК, чтобы изменения вступили в силу. Элементы, выбранные Вами в диалоговом окне Select Packages/Libraries для просмотра в Object Browser, могут остаться доступными и в дальнейшем.

Группирование и сортировка классов и их элементов

Object Browser позволяет группировать или сортировать классы и их элементы по уровню доступа или типу. По умолчанию ни группирование, ни сортировка не применяется.

Чтобы сгруппировать или отсортировать классы и их элементы:

  1. Щелкните Object Browser правой кнопкой мыши и выберите из контекстного меню команду Grouping and Sorting или воспользуйтесь одноименной кнопкой на командной панели Object Browser.
  2. Для группирования или сортировки классов выберите из списка в разделе Classes категорию группы:
  3. Сгруппировав классы, можно изменить порядок категорий групп. Укажите нужную категорию в списке и щелкните соответствующую кнопку со стрелкой.
  4. Для группирования или сортировки элементов классов выберите из списка в разделе Members категорию группы:
  5. Сгруппировав элементы классов, можно изменить порядок категорий групп. Укажите нужную категорию в списке и щелкните соответствующую кнопку со стрелкой.
  6. Если Вы хотите вывести имена категорий групп в Object Browser, установите флажок Group with headers in main list.

Примечание Отображение заголовков групп возможно лишь в основном списке Object Browser. Допустим, Вы сгруппировали элементы классов, но Object Browser показывает в основном списке только классы. Когда Вы выберете какой-нибудь класс и его элементы появятся в зависимом списке, последние будут разбиты по группам, но никаких заголовков групп Вы не увидите. О просмотре классов и их элементов в основном и зависимом списках см. раздел «Просмотр классов и их элементов» ранее в этой главе.

  1. Щелкните кнопку ОК.
к оглавлению   к 4GL - визуальному программированию

Знаете ли Вы, в чем фокус эксперимента Майкельсона?

Эксперимент А. Майкельсона, Майкельсона - Морли - действительно является цирковым фокусом, загипнотизировавшим физиков на 120 лет.

Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.

В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.

Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution