КаталогИндекс раздела
НазадОглавлениеВперед


Работа 05: Использование Отладчика

Цель работы:

В этой работе вы ближе познакомитесь с Java Development Tools в Eclipse, поскольку вы будете применять некоторые из наиболее часто используемых инструментов, а именно, Debugger, снова Scrapbook и Inspector. Эти инструменты весьма полезны при разработке Java-кода. В этой работе вы по шагам пройдете через выполнения конструктора Board и постараетесь определить и исправить неправильное поведение.

Выполнение работы:

Шаг 1: Создание класса Rule

В проекте LifeGame создайте новый класс Rule (в том же пакете, что и остальные классы игры), который имеет закрытое поле name типа String. Сгенерируйте методы-акцессоры для поля. Класс будет использован позже в наших работах для представления разных правил игры. Пока вы создаете основу для этого класса.

Добавьте конструктор класса, который принимает параметр типа String и присваивает его полю name. Конструктор должен выглядеть так:

public Rule(String name){
       name = name;
}

Шаг 2: Создание экземпляра Rule

Создайте в Scrapbook новый экземпляр правила, используя созданный конструктор, и проинспектируйте его. Какое значение поля name?

Очевидно, что поле name не установлено в конструкторе по нескольким причинам. Вам понадобится использовать Debugger, чтобы увидеть, что происходит, когда имя передается в конструктор.

В проекте LifeGame создайте новый пакет org.eclipse.lifegame.test и добавьте в пакет класс LifeTester. При создании класса убедитесь, что вы выбрали создание метода main().

Вы будете использовать этот класс для вызова Debugger и инспектирования некоторого кода.

В методе main() напишите код из Scrapbook. Код должен выглядеть так:

       public static void main(String[] args) {
		Rule rule = new Rule("Survival");
		System.out.println(rule.getName());
	}

Заметьте, что класс Rule находится в другом пакете, и что вам нужно добавить оператор импорта. Запустите класс, выбрав Run -> Run As -> Java Application из выпадающего меню. В Console выведется null.

Шаг 3: Отладка конструктора

Установите точку останова в методе main и снова запустите LifeGameTester. Появится ли Debugger? Чтобы вызвать Debugger, вам нужно выбрать опцию Debug вместо опции Run для класса LifeGameTester.

Debugger появляется и останавливает выполнение в методе main, где была установлена точка останова.

Пройдите конструктор по шагам и вычислите переданный параметр, а также и поле name. Сможете ли вы увидеть, в чем проблема в коде?

Конструктор использует выражение name = name; где name - это параметр, переданный в конструктор, и в то же время - поле класса. Когда код вычисляется, переданное значение имени назначается переданной переменной name. Это не дает никакого эффекта и Eclipse распознает это и отображает предупреждение следом за этим выражением.

Правильное выражение должно быть this.name = name; где this.name означает поле, а name означает переданный параметр.

Если вы вычислили код с точкой останова в Scrapbook, откроется Debugger. Если код имеет предупреждения, Debugger не откроется.

Выводы:

В этой работе вы познакомились с использованием Eclipse Debugger.


НазадОглавлениеВперед
КаталогИндекс раздела