Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Некоторые особенности логических операторов

Конкатенация.

Беззнаковый сдвиг.

Операторы.

Подавляющее большинство операторов в языках C и Java полностью совпадают, однако некоторые операторы в Java имеют специальное назначение.

Если в языке C результат действия оператора << строго определён, то этого нельзя сказать об операторе >>. В одних версиях языка C операция >> трактуется как беззна­ковый сдвиг, в других — как сдвиг числа со знаком. В первом случае при сдвиге впра­во старшие разряды заполняются нулями, во втором случае в них записывается значе­ние знакового разряда.

В Java данная неоднозначность устранена. При выполнении оператора >> учитыва­ется знак числа. Для обозначения беззнакового сдвига вправо введен новый оператор >>>. Он выполняет сдвиг вправо на указанное число разрядов; освободившиеся стар­шие разряды заполняются нулями.

byte i = -2;

i = i >>> 3;

Кроме оператора >>>, в Java определён оператор >>>=. Так, команду сдвига, приведенную в предыдущем примере, можно запи­сать следующим образом:

i >>>= 3;

В языке Java широко используются строковые значения. Не удивительно, что для упрощения работы со строками в Java поддерживается операция конкатенации. Для обозначения данной операции используется оператор +.

Как же отличить конкатенацию от обычного сложения? Если операция + выполняет­ся над числами, данный оператор обозначает сложение. Если же оператором + связаны два объекта String, это означает, что должна быть выполнена конкатенация строк.

Оператор & выполняет побитовое логиче­ское умножение, а оператор && — ту же операцию над логическими значениями.

Благодаря тому что в языке Java был реализован тип данных boolean, появилась возможность расширить набор логических операций. В логических выражениях может быть использован как односимвольный (&), так и двухсимвольный оператор умножения (&&). Оператор & реализует вычисления по полной схеме, а && — по сокращённой схеме. Рассмотрим простой пример.

if ((a!= 0) && (b++ < 10))

{

}

Очевидно, что, если a равно 0 и всё выражение равно false, вычислять второе ло­гическое значение не имеет смысла. Однако в этом случае инкрементирование пере­менной b не будет выполнено. В языке C работа программ, включающих подобные выражения, зависела от реализации компилятора. В Java появилась возможность ис­ключить неоднозначность.

Оператор && указывает на то, что вычисление значения логического выражения может производиться по сокращённой схеме. В нашем примере это означает, что если переменная a равна 0, то второе выражение вычисляться не будет.

При использовании оператора & вычисления выполняются по полной схеме.

В этом случае выражение, находящееся справа от оператора &, вычисляется неза­висимо от значения переменной a.

Очевидно, что все вышесказанное справедливо не только для &, но и для | и дру­гих логических операторов.

Классы.

Функции, входящие в состав класса (в C++ их принято называть функциями-членами), в языке Java называются методами.

Переменные, входящие в состав класса, называют свойствами, или же более при­вычным термином переменные.

В языке Java дочерний класс принято называть подклассом, я родительский класс — суперклассом.

Иногда суперклассами называют все классы, находящиеся в иерархии выше данного класса. Чтобы различать «предков» различного уровня, класс, из которого порождён данный класс, иногда называют непосредственным суперклассом.

 

 


Говоря о наследовании, следует упомянуть одну важную деталь, отличающую Java от C: в языке Java для каждого класса существует лишь один непосредственный су­перкласс. Если при определении класса суперкласс не указан, считается, что данный класс является подклассом класса Object. Таким образом, класс Object является супер­классом для всех классов, используемых в любой Java-программе.

Объявление класса.

Основная часть исходного кода программы на Java представляет собой объявление класса. В теле класса определяются переменные и методы, обеспечивающие работу программы. Формат выражения, используемого для объявления класса, приведен ниже.

[модификаторы] class имя_класса [extends имя_суперкласса] [implements имя_интерфейса]

{

тело_класса

}

Рассмотрим подробнее составные части данного выражения.

Единственные компоненты, которые обязательно должны присутствовать в объяв­лении класса, — это ключевое слово class и имя класса. По соглашениям Java, имя класса должно начинаться с прописной буквы. Со строчных букв начинаются имена методов и переменных.

Ключевому слову class может предшествовать один или несколько модификато­ров. Допустимые значения модификаторов перечислены ниже

· abstract — определяет абстрактный класс, т. е. класс, экземпляр которого не может быть создан. Чтобы обеспечить доступ к переменным и методам, содер­жащимся в таком классе, надо объявить его подкласс, определить недостающие методы и создать экземпляр подкласса.

· final — указывает на то, что подкласс объявляемого класса не может быть соз­дан. Разрабатывая свои первые программы на языке Java, вы вряд ли будете ис­пользовать данный модификатор, однако знать о его существовании необходи­мо. Очевидно, что в объявлении класса не могут одновременно присутст­вовать модификаторы abstract и final.

· public — сообщает, что объявляемый класс должен быть доступен за пределами текущего пакета. Следует заметить, что в Java действует следующее правило: имя файла, содержащего public-класс, должно совпадать с именем этого класса. Другими словами, выражение public class MyApplet может присутствовать лишь в файле с именем MyApplet.java.

За именем класса может следовать ключевое слово extends, сопровождаемое име­нем суперкласса, из которого порождается объявляемый класс. Если ключе­вое слово extends и имя суперкласса отсутствуют, это означает, что суперклассом объ­являемого класса является класс Object.

И, наконец, последний компонент объявления класса — ключевое слово implements за которым следует имя интерфейса.

<== предыдущая лекция | следующая лекция ==>
Типы данных | Переменные
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 279; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.