Программирование на JAVA
Меню :
Стартовая
Основы программирования
Программирование на JAVA
Программирование на C++
Программирование на Pascal
Задачи по программированию
Распространенные однобуквенные сокращения:
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
□ другие нарушения