Лекции (989962), страница 54

Файл №989962 Лекции (Лекции) 54 страницаЛекции (989962) страница 542015-08-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 54)

Использование пакетовДля того, чтобы в одном классе можно было использовать другой класс, необходимо импортировать этоткласс при помощи директивы import. Пример: import avtomobil; . Однако вы видите, что во всех приведенных ранее примерах этого не сделано. Объясняется это тем, что директиву import можно опустить, еслифайл класса находится в том же каталоге. Директива import используется, в основном, для импорта классовиз пакетов.Рассмотрим понятие пакета.

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

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

Пример: Ляхевич А.Г., 2000 - 2002 годВерноНеверноpackage tachki;import java.awt.*;import java.io.*;import java.awt.*;import java.io.*;package tachki;class avtomobil {long nomer;void poehal ( ) { System.out.println (" Еду "); }}class avtomobil {long nomer;void poehal ( ) { System.out.println (" Еду "); }}class mercedes extends avtomobil {void poehal ( ){ System.out.println (" Еду быстро …"); }void marka ( ){ System.out.println (" Шестисотый мерс!"); }}class mercedes extends avtomobil {void poehal ( ){ System.out.println (" Еду быстро …"); }void marka ( ){ System.out.println (" Шестисотый мерс!"); }}Для использования класса из пакета, необходимо импортировать его, или импортировать пакет целиком.Синтаксис:import имя_пакета . имя_класса// импортировать один классimport имя_пакета .

*// импортировать все классы из пакетаПример:import tachki . mercedes;import tachki . * ;Можно и не импортировать пакет, тогда для использования класса придется указывать его полное название,включая имя пакета, что неудобно: tachki.mercedes moya_tachka = new tachki.mercedes ( );Также желательно не импортировать большие пакеты целиком, а ограничиться только теми классами,которые действительно нужны:1) При импорте пакета целиком виртуальная машина Java должна отслеживать имена всех элементов,имеющихся в пакете. На это расходуется дополнительная оперативная память.

Кроме того, в этом случаенемного снижается быстродействие системы2) Если импортируется несколько пакетов и окажется, что они имеют совпадающие имена файлов классов,то возникнет конфликт: какой же класс все-таки использовать?3) Самый главный минус связан с пропускной способностью Internet-соединения. Когда вы целикомимпортируете пакеты, отсутствующие на вашем компьютере, то перед тем, как продолжить работу, браузердолжен загрузить через сеть все файлы классов для целого пакета. Если в пакете имеется 30 классов, аиспользуются только два, будут напрасно расходоваться значительные ресурсы и время пользователя.8.8. ИнтерфейсыВ языке Java отсутствует множественное наследование, т.е.

любой объект может порождаться только отодного объекта. Но иногда надо, чтобы объект унаследовал не только свойства и методы родителя, но исвойства и методы другого объекта. Для этих целей используются интерфейсы – классы, в которыхобъявлены, но не описаны методы. Класс, реализующий интерфейс, должен сам описать реализациюметодов интерфейса. При описании методов интерфейсов, можно не указывать модификаторы доступа, всеони по умолчанию рассматриваются как public. Другие модификаторы доступа в описании методовинтерфейса использовать нельзя. В интерфейсах также нельзя использовать переменные, не являющиесяконстантами (final). Любые поля интерфейса, вне зависимости указаны модификаторы доступа или нет,рассматриваются как public, final и static.Синтаксис объявления интерфейса следующий:public interface имя_интерфейса extends список_интерфейсов{ /* объявление свойств, объявление методов без описания их реализации */ }Пример:public interface Radio {final String nazvanie = "Автомобильный радиоприемник"; // описание константыpublic long Volna( );// описание метода}Интерфейс применяется к объекту при помощи ключевого слова implements (синтаксис см.

выше). Пример:class mercedes extends avtomobil implements Radio – к классу mercedes применяется интерфейс Radio. Ляхевич А.Г., 2000 - 2002 год8.9. Арифмитические и логические операции. Циклы и управляющие операторы.Арифметические и логические операцииОперацияОписаниеx=3Присвоить переменной x значение 3.+, -, *, /, %Сложение, вычитание, умножение, деление и деление по модулю (определение остаткаот деления).Увеличить x на единицу, уменьшить x на единицу.x ++, x -+=, -=, *=, /=x == 3x != 3<,<=,>,x|yСложение, вычитание, умножение и деление с присваиванием.x+=3 аналогично команде x=x+3.Операция равенства: x равен 3.

Используется в конструкции IF..ELSE и др.Пример: if (x==3) { //действия };Операция неравенства: x не равен 3.>= Операции отношений: меньше, меньше или равно, больше, больше или равно.x&yПоразрядная операция ИЛИ (OR). Результатом является число, полученное всоответствии с таблицей истинности для ИЛИ. Пример:x: 00001010 = 10y: 00001100 = 12Результат: 00001110 = 14Поразрядная операция И (AND).x^yПоразрядная операция исключающее ИЛИ (XOR).~xПоразрядное логическое отрицание НЕ (NOT).&=,|=, ^=x||yПоразрядные операции с присваиванием: x&=y аналогично x=x&yx && yЛогическая операция ИЛИ (OR).

В отличие от поразрядных операций, результатлогической операции не число, а только значение ИСТИНА или ЛОЖЬ. Именнологические операции используются в конструкциях IF..ELSE и др.Логическая операция И (AND).!xЛогическая операция НЕ (NOT).-xУнарная операция "изменение знака".x<<2Поразрядный сдвиг битов влево: сдвинуть биты переменной х на 2 бита влево. Пример:00000001 (двоичное) <<2 дает 00000100 (двоичное).Поразрядный сдвиг вправо, поразрядный сдвиг вправо без знака.>>, >>><<=, >>=, >>>= Поразрядный сдвиг с присваиванием.Оператор if - else:Синтаксис:if (выражение) {операторы;} else {операторы; }Пример:1) if ( x==2 && x!=3 ) { /*операторы выполняются если x равен 2 и не равен 3*/ } else { /*операторы */ }2) if (x==2) { /*операторы */ }Оператор whileСинтаксис:1) while (выражение) {операторы;}2) do {операторы;} while (выражение);Пример:1) while(x==2 && x!=3) { x++; /* и др.

операторы - выполняются пока x равен 2 и не равен 3 */ }2) do { /*операторы */ } while (x==2);Операторы forСинтаксис:1) for ( тип_данных счетчик=исходное_значение; (условие_остановки); шаг ) { /*операторы */ }Пример:1) for ( int i=0, long j=10; ( ( i >100 ) | | yslovie_J ( )); i++, raschet_J ( ) ) { /*операторы */ } Ляхевич А.Г., 2000 - 2002 год2) for (int i=0; i==100; i++) {/*операторы */ }Описание метокВ Java нет операторов Goto, поэтому управление на метки передается при помощи операторов break иcontinue (см.

ниже). Метки описываются не относительно всей программы, а относительно только техоператоров, которые заключены между скобками { } в описании метки. Описание меток можно вкладыватьодно в другое.Синтаксис:метка : { /*операторы, относительно которых определена метка*/ }Пример:metka1: { x++;metka2:{ y++; }}Оператор breakИспользуется в конструкциях while, for и switch (см. ниже). Прерывает выполнение цикла и передаетуправление по указанной метке. Если метка не указана, то управление передается строке, следующей зациклом.

Пример:Пример 1metka1: { for (int i=0; i==100; i++) {metka2: { for (int m=0; m==100; m++) {if ( i==77 ) break metka1;if ( m==99 ) break metka2; }}}}Пример 2for (int i=0; i==100; i++) { if ( i==77 ) break; }Пример 3metka: { int x = 3;/* операции */if (x==3) break metka; }Операторы continueИспользуется в конструкциях while, for и switch (см. ниже). Прерывает выполнение цикла и преждевременнопередает управление к следующему проходу цикла. Указание метки в операторе continue позволяет выбратьуровень вложенности цикла, которому передается управление.

Пример:Пример 1metka1: { for (int i=0; i==100; i++) {metka2: { for (int m=0; m==100; m++) {if ( i==77 ) continue metka1;if ( m==99 ) continue metka2; }}}}Пример 2for (int i=0; i==100; i++) { if ( i==77 ) continue; }Операторы switchПереключатель switch (должен иметь целый тип: byte, short, char, int, но не float и boolean) передает управление одному из нескольких составляющих его операторов в зависимости от значения переключателя. Еслисовпадений нет, то управление передается метке по умолчанию (default).

Если default-метка отсутствует,программа продолжается с первого оператора, стоящего после блока switch.Синтаксис:switch (переключатель) {case значение1 : оператор1; операторN; break;case значениеN: оператор1; операторN; break;default: оператор1; операторN; break;}Пример:int x=1; switch (x){case 1: System.out.println ("one"); break;case 2: case 3: case ' ': System.out.println ("two or three or space"); break;case default: System.out.println ("Default"); }8.10. Математические функции, дата и время, работа со строкамиМатематические функции:В пакете java.lang имеется класс Math, который предоставляет некоторые полезные математические итригонометрические функции. Пример:class primer {public static void main(String args[ ] ) { // Запуск программы Ляхевич А.Г., 2000 - 2002 годint chislo1 = Math.min (100, 700); // Возвращает минимальное значения из двух чисел 100 и 700int chislo2 = Math.max (100, 700); // Возвращает максимальное значения из двух чисел 100 и 700int chislo3 = Math.abs (-3); // Возвращает абсолютное значение числаint chislo4 = ( int ) ( 10*Math.random ( ) ) + 1; /* Возвращает случайное целое число от 1 до 10.Здесь Math.random( ) возвращает случайное число от 0 до 1, а конструкция ( int ) ( выражение ) служитдля преобразования выражения, находящегося под скобками, к типу int.

Аналогично можно проводитьпреобразования и между другими типами данных. Наример: ( long ) ( 15.234 + 10.017 ) */long chislo5 = Math.round (10.5); //Округление по правилам математики. Результат = 11double chislo6 = Math.floor(10.7); //Округление всегда в меньшую сторону. Результат = 10double chislo7 = Math.ceil (10.3); //Округление всегда в большую сторону. Результат = 11double chislo8 = Math.rint (10.5); //Округление до ближайшего целого.

Результат = 10double chislo9 = Math.sqrt ( 4 ); //Квадратный корень из 4.double chislo10 = Math.pow ( 7, 1/3 ); // Число 7 в степени 1/3double chislo11 = Math.log ( 7 ); // Натуральный логарифм числа 7.double chislo12 = Math.log ( 7 ) / Math.log ( 10 ); // Десятичный логарифм числа 7.double chislo14 = Math.exp ( 7 ); // Экспонента числа 7, т.е. e7. Существует константа Math.Edouble chislo15 = Math.sin ( 3.14 ); // Синус. Угол задается в радианах. Радианы=градусы*Math.PI / 180.double chislo16 = Math.cos ( Math.PI / 2 ); // Косинус.

Характеристики

Тип файла
PDF-файл
Размер
6 Mb
Материал
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее