Программирование на JAVA

Навигация

Лекция 1. Что такое Java? История создания

Лекция 2. Основы объектно-ориентированного программирования

Лекция 3. Лексика языка

Лекция 4. Типы данных

Лекция 5. Имена. Пакеты

Лекция 6. Объявление классов

Лекция 7. Преобразование типов

Лекция 8. Объектная модель в Java

Лекция 9. Массивы

Лекция 10. Операторы и структура кода. Исключения

Лекция 11. Пакет java.awt

Лекция 12. Потоки выполнения. Синхронизация

Лекция 13. Пакет java.lang

Лекция 14. Пакет java.util

Лекция 15. Пакет java.io

Лекция 16. Введение в сетевые протоколы

Реклама :





Распространенные однобуквенные сокращения:

byte b; char с; inti,j,k; long I;

float f; double d; Object o; String s;

Exception e; // объект, представляющий ошибку в Java

Двух- и трехбуквенные имена не должны совпадать с принятыми до­менными именами первого уровня Internet-сайтов.

Заключение

В этой главе был рассмотрен механизм именования элементов языка. Для того, чтобы различные части большой системы не зависели друг от дру­га, вводится понятие "область видимости имени", вне которой необходимо использовать не простое, а составное имя. Затем были изучены элементы (members), которые могут быть у пакетов и ссылочных типов. Также рас­сматривалась связь терминов "идентификатор" (из темы "Лексика") и имя.

Затем были рассмотрены пакеты, которые используются в Java для создания физической и логической структуры классов, а также для более точного разграничения области видимости. Пакет содержит вложенные пакеты и типы (классы и интерфейсы). Вопрос о платформенной под­держке пакетов привел к рассмотрению модулей компиляции как тексто­вых файлов, поскольку именно в виде файлов и каталогов, как правило, хранятся и распространяются Java-приложения. Тогда же впервые был рассмотрен вопрос разграничения доступа, так как доступ к модулям компиляции определяется именно платформенной поддержкой, а точнее - операционной системой.

Модуль компиляции состоит из трех основных частей — объявление пакета, импорт-выражения и объявления верхнего уровня. Важную роль иг­рает безымянный пакет, или пакет по умолчанию, хотя он и не рекоменду­ется для применения при создании больших систем. Были изучены детали применения двух видов импорт-выражений - импорт класса и импорт па­кета. Наконец, было начато рассмотрение объявлений верхнего уровня (эта тема будет продолжена в главе, описывающей объявление классов). Паке­ты, как и другие элементы языка, имеют определенные соглашения по име­нованию, призванные облегчить понимание кода и уменьшить возмож­ность возникновения ошибок и двусмысленных ситуаций в программе.

Описание области видимости для различных элементов языка приводит к вопросу о возможных перекрытиях таких областей и, как следствие, о кон­фликтах имен. Рассматриваются "затеняющие" и "заслоняющие" объявления. Для устранения или уменьшения возможности возникновения таких ситуа­ций описываются соглашения по именованию для всех элементов языка.

Вариант 1

1.   Что из перечисленных ниже слов является простым именем?

МуОазэ.пате

МуС1а58.пате.т,о5тгтд()

Муаазз.пате^оБтгтдО.пазпСоаеО

□ МуС^ээ

□ пате

□ 1оБМпд

□ ЬаэпСос-е

2.   Могут ли пакет и вложенные пакеты содержать одноименные классы?

□ да

□ нет

3.   Корректен ли объявленный ниже класс? Если нет, то как его можно исправить? class Box {

private int weight=0; public int getWeight() { return weight;

}

void setWieght(int weight) { weigh t=weigth;

}

}

П   пример корректен, ничего исправлять не нужно

Г~1   пример некорректен, конфликт имен в методе setWeight требует переименования поля или аргумента

П   пример корректен, однако конфликт имен в методе setWeight требует переименования поля или аргумента

Г~1   пример корректен, однако конфликт имен в методе setWeight требует переименования поля или аргумента, либо использования выражения this

□   пример корректен, однако конфликт имен в методе setWeight требует переименования поля или аргумента, либо использования выражений this или super

Вариант 2

1.   Что из перечисленных ниже слов является составным именем? Му-ГЛавв МуС1а88.пате МуС1а88.пате.т.о51гтд() МуС1а85.пате.т.о51ппд().»1а811(^е()

□ МуОаээ.пате

□ МуГЛазэ.пате.т-оЗтпд

□ МуФазз.патеЛобгппдО.пазгЮойе

2.   Программист располагает свою программу в каталоге c:\work. Программа состоит из одного класса demo.Start. Как нужно расположить файл .java и как запускать компилятор javac?

□ c:\work\Start.java, запустить компилятор из каталога c:\work javac Start.java

□ c:\work\demo\Start.java, запустить компилятор из каталога c:\work\demo

javac Start.java

П   c:\work\demo\Start.java, запустить компилятор из каталога c:\work

javac demo\Start.java

□       c:\work\demo\Start.java, запустить компилятор из каталога c:\work

javac demo.Start

3.   Как в предыдущем вопросе следует расположить файл .class и как запускать виртуальную машину java?

П   c:\work\Start.class, запустить JVM из каталога c:\work java Start

П   c:\work\demo\Start.class, запустить JVM из каталога c:\work\demo java Start

□ c:\work\demo\Start.class, запустить JVM из c:\work: java demo\Start.class

□ c:\work\demo\Start.class, запустить JVM из c:\work: Java demo.Start

Вариант 3

1.       Что из перечисленных ниже слов является идентификатором?

MyClass

MyClass.name

MyClass.name.toStringO

MyClass.name.toString().hashCode()

□ MyClass l~l   name

□ toString

□ hashCode

2.       Ниже приведено несколько вариантов записи модуля компиляции. Какие из них корректны, если предполагается описать класс Point из пакета test.demo, причем класс активно использует классы java.awt.Point и несколько классов из пакета java.net?

О   package test.demo; import java.awt.Point; importjava.net.*;

П import java.awt.*; importjava.net.*; package test.demo;

П   package test.demo; importjava.net.*; import java.awt.*;

П   package test.demo.* importjava.net.*; import java.awt.*;

3.   Какие формальные нарушения соглашений по

именованию присутствуют в следующем примере: public class flat{

private int floor_number; private int г; // количество комнат public int roomsO { retun r;

}

public int GetFloorNumberO { return floor_number;

}

}

□ класс назван с прописной буквы, должно быть Flat

□ имя поля floor_number содержит два слова, разделенных знаком подчеркивания, должно быть FloorNumbe

□ имя поля г состоит из одной буквы, а оно должно быть более понятным, например, rooms или roomsNumber

□ другие нарушения