Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Переменные

Лекция №3.

Для объявления переменной используется следующее выражение:

[модификаторы] тип имя_переменной;

В данном случае тип — это либо один из простых типов (int, char, Boolean и т. д.), либо имя класса.

Простые типы используются так же, как и в языке C. После объявления переменной в неё можно записывать различные значения, включать её в состав выражения и т. д.

На первый взгляд кажется, что имена классов одинаково используются в качест­ве типов переменных как в Java, так и в C. Однако сходство это чисто внешнее.

Предположим, что в программе на языке C определён класс с именем ClassC. При­ведённое ниже выражение создает экземпляр класса ClassC и размещает его в пере­менной с именем objC.

Посредством objC мы можем обращаться к переменным и функциям-членам клас­са ClassC.

Рассмотрим подобную ситуацию в программе на языке Java. Предположим, что в ней определён класс с именем ClassJava и что в тексте программы присутствует такое выражение

ClassJava objJava;

В отличие от языка C, эк­земпляр класса не создаётся. Данное выражение объявляет переменную, которая мо­жет хранить ссылку на экземпляр класса ClassJava.

В языке Java отсутствуют указатели. И это не случайно, ведь, Java-апплеты могут пе­ремещаться по глобальной сети, поэтому подобная программа должна быть лишена любой возможности непосредственно обращаться к ресурсам локального компьютера. При наличии указателей добиться выполнения запрета на доступ к ресурсам практи­чески невозможно, ведь указателю можно присвоить любое значение, а затем исполь­зовать его для обращения к произвольной области памяти.

С другой стороны, работать с объектами без указателей крайне сложно, поэтому в Java был реализован механизм ссылок. Упрощённо ссылку можно представить себе как указатель, который может указывать лишь на существующий объект определён­ного типа.

Для создания объекта и связывания с этим объектом переменной определенного типа служит оператор new. Вернёмся к рассмотренному выше примеру. После того как в программе определена переменная objJava типа ClassJava, мы можем включить в программу следующее выражение:

objJava = new ClassJava ();

Очевидно, что ClassJava () — это один из конструкторов данного класса. Он созда­ёт экземпляр класса ClassJava и возвращает ссылку на этот объект. Ссылка помещает­ся в переменную objJava.

После выполнения данной команды обращение к переменным и методам класса ClassJava производится так, как будто в переменной objJava содержится не ссылка, а экземпляр класса.

До сих пор не было сказано ни слова о модификаторах, которые могут указываться при объявлении переменных.

· Модификатор типа доступа определяет, из каких классов может производить­ся обращение к объявляемой переменной. Доступ к переменным и методам в Javaорганизован несколько сложнее, чем в языке C, поэтому на первых эта­пах изучения языка руководствуйтесь простым правилом: чтобы разрешить обращение к переменной из-за пределов пакета, которому принадлежит класс, следует указать в описании этой переменной модификатор public.

· Модификатор static превращает переменную экземпляра в переменную класса. Этот вид переменных хорошо знаком вам из языка C. В отличие от переменной экземпляра, переменная класса, или статическая переменная, с конкретным именем создаётся одна для всех объектов данного класса. Изменение значения этой переменной проявляется во всех экземплярах класса.

· Модификатор final сообщает, что значение переменной не может изменяться. Другими словами, переменная final представляет собой не переменную в обычном смысле этого слова, а именованную константу.

Разговор о переменных, используемых внутри класса, закончим упоминанием о двух переменных, имеющих специальное назначение.

Переменная this хорошо известна вам из языка C. Она ссылается па текущий эк­земпляр класса. Наряду с переменной this в Java определена переменная super, кото­рая указывает на суперкласс данного класса и может быть использована для вызова любых методов суперкласса.

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


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


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



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




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