- •Главные блоки компьютера и их назначение.
- •Назначение программы-компилятора
- •Назначение программы-интерпретатора
- •Основные идеи методики «структурное программирование»
- •Основные идеи методики «объектно-ориентированное программирование»
- •Что такое «объект»?
- •Что такое «класс»?
- •Что такое «геттеры» и «сеттеры»?
- •Перечислите известные Вам типы классов
- •Перечислите этапы жизненного цикла объекта и дайте краткие пояснения этапов
- •Укажите назначение конструктора класса
- •Что такое «наследование»?
- •Приведите структуру (форму) определения класса
- •Поясните термин «инициализация». Приведите три примера определения полей с инициализацией и без инициализации
- •Поясните понятие «ссылка на объект». Приведите пример объявления ссылки на объект
- •Примитивные типы данных, их назначение и «ширина»
- •Определение литерала, примеры литералов различных типов.
- •Понятие константы в Java. Способы задания констант. Примеры.
- •Операции для целочисленных данных: обозначения и правила выполнения.
- •Операции для булевских данных: обозначения и правила выполнения
- •Обозначение операций для сравнения данных. Примеры применения этих операций.
- •Правила вычисления результата для операций & и |. Примеры.
- •Назначение, форма и примеры применения «расширенного присваивания»?
- •Блок: определение, назначение и примеры применения.
- •Назначение и форма условного оператора (с примерами применения).
- •28. Назначение и форма оператора выбора, примеры применения.
- •Назначение и форма оператора while, примеры применения.
- •Назначение и форма оператора for, примеры применения.
- •Назначение и форма операторов break, continue, return. Примеры применения.
- •Создание переменных простого и объектного типов: сходство и различие.
- •Простые переменные
- •Определение массива. Нумерация элементов одномерного массива. Примеры.
- •Базовый тип массива. Допустимые базовые типы. Длина массива.
- •Различие между объявлением массива и созданием массива. Примеры.
- •Прием вычисления суммы элементов числового массива.
- •37. Методика поиска минимального и максимального элементов массива.
- •38. Приемы инициализации элементов массива (привести примеры).
- •39. Приемы копирования массива.
- •40. Метод пузырьковой сортировки
- •41. Метод сортировки прямым выбором
- •42. Метод сортировки прямыми вставками
- •43. Структура (составные части) метода. Форма определения метода.
- •44. Особенности методов, возвращающих значения. Оператор return.
- •45. Параметры методов: различия между параметрами простых типов и параметрами объектных типов.
- •46. Уровни доступа к элементам класса: назначение и примеры. Ограничение доступа
- •47. Особенности конструктора как метода класса
- •Отличия описания
- •48. Понятие статических элементов класса. Объявление статических элементов.
- •49. Назначение и форма статических инициализаторов
- •50. Понятие инкапсуляции.
- •51. Правила передачи параметров в методы
- •52. Понятие полиморфизма. Объяснение полиморфизма на примере базового класса и нескольких его наследников.
- •53. Ограничения на типы левой и правой частей оператора присваивания
- •54. Понятия «динамическое связывание» и «статическое связывание»
- •55. Абстрактные методы и абстрактные классы.
- •Понятие интерфейса. Назначение интерфейса.
- •57. Объявление интерфейса и объявление класса, реализующего интерфейс.
- •Правила создания класса-интерфейса в BlueJ
- •59. Борьба с ошибками в программах. Защита кода проверкой допустимости данных.
- •60. Понятие исключения. Типы исключений.
- •62.Охраняемый участок программы блок try
- •63.Обработка исключений
- •64.Назначение finally
- •65.Генерация исключений в программе
- •70. Класс String. Особенность экземпляров класса
- •71.Методы выделения элементов строки
- •72. Методы поиска строки
- •73.Сравнение строк.Примеры
- •74.Преобразования символов строки в маленькие буквы и наоборот
- •75. Разбиение строки на слова .StringTokenizer
47. Особенности конструктора как метода класса
Конструкторы имеют только одно назначение — создать экземпляр класса. Или, как еще говорят, создать объект, как здесь:
Platypus p1 = new Platypus();
Назначение методов гораздо более общее. Основная функция метода — выполнить Java код.
Отличия описания
Конструкторы и методы имеют три отличия при описании: модификаторы доступа, возвращаемые типы и правила именования. Как и методы, конструкторы могут иметь любые модификаторы доступа: public, protected, private, или модификатор может отсутствовать (часто имеется ввиду package или friendly). Но в отличии от методов, конструкторы могут иметь модификаторы только доступа. Поэтому, конструктор не может быть abstract, final, native, static, orsynchronized.
Возвращаемые типы тоже отличаются. Методы могут возвращать любой правильный тип, или ничего не возвращать, в данном случае возвращаемый тип описывается как void. Конструкторы же не имеют возвращаемого типа, они не могут возвращать даже тип void.
И в заключение, методы и конструкторы имеют различные имена. Конструкторы имеют одинаковые имена с именем класса в котором описаны, а методы, по договоренности, имеют имена отличные от имени класса. Если Java программа написана по правилам языка, имена методов начинаются с маленькой буквы, конструкторов — с большой. И еще, имя конструктора является существительным, так как имена классов обычно являются существительными, имена же методов обычно являются глаголами.
48. Понятие статических элементов класса. Объявление статических элементов.
При создании объектов, с одной стороны, каждый объект имеет свои собственные независимые поля данных, с другой – все объекты одного класса используют одни и те же методы. Методы класса создаются и размещаются в па-мяти компьютера всего один раз – при создании класса, так как нет никакого смысла держать в памяти копии методов для каждого объекта, поскольку у всех объектов методы одинаковые. А поскольку наборы значений полей у каждого объекта свои, поля объектов не должны быть общими. Однако существует ряд ситуаций, когда необходимо, чтобы все представители одного класса включали в себя какое-либо одинаковое значение. Для этих целей служат статические элементы класса. Статический элемент класса может рассматриваться как глобальная переменная или функция, доступная только в пределах области класса. Для определения статических полей и методов используется ключевое слово static. Статический элемент данных разделяется всеми представителями данного класса. То есть существует только один экземпляр переменной независимо от числа созданных представителей. Память под статический элемент выделяется, даже если не существует никаких представителей класса. Определение статических полей класса происходит не так, как для обычных полей. Обычные поля объявляются (компилятору сообщается имя и тип поля) и определяются (компилятор выделяет память для хранения поля) при помощи одного оператора. Для статических полей эти два действия выполняются двумя разными операторами: объявление поля находится внутри определения класса, а определение, как правило, располагается вне класса и зачастую представляет собой определение глобальной переменной. Если бы определение статического поля класса находилось внутри класса (как в ранних версиях C++), то это нарушило бы принцип, в соответствии с которым определение класса не должно быть связано с выделением памяти. Поместив определение статического поля вне класса, мы обеспечили однократное выделение памяти под это поле, до того как программа будет запущена на выполнение, и статиче-ское поле в этом случае будет доступным всему классу.
static int iCount;