Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Что такое объекты.

Читайте также:
  1. III.1. ЧТО ТАКОЕ СВАДХАРМА?
  2. lt;question>Что такое сегментирование рынка?
  3. Lt;question>Что такое способ производства?
  4. Введение. Что такое Контейнер объектов и зачем он нужен
  5. Диспраксия развития: что это такое?
  6. Есть такое… - кивнул Бушидо, соглашаясь с врачом.
  7. Итак, что же такое гипноз?

- Это снова твоя любимая учительница. Раз у нас так быстро пошли дела, решила рассказать тебе, что такое объекты, и как с ними работать.

- Чтобы создать какой-нибудь объект, нужно написать имя типа (класс) этого объекта и ключевое слово new перед ним. Допустим, у нас есть класс «кот» – Cat, тогда:

  Код Описание
  Cat cat; Объявляет ссылочную переменную с именем cat и типомCat. Значение переменной cat – ссылка null.
  new Cat(); Создаёт объект типа Cat.
  Cat cat = new Cat(); Создаёт ссылочную переменную cat типа Cat. Создаёт новый объект типа Cat. Присваивает в переменную cat ссылку на новосозданный объект.
  Cat murzik = new Cat(); Cat vaska = new Cat(); Создаются два объекта, ссылки на которые присваиваются двум разным переменным соответственно.
  Cat murzik = new Cat(); Cat vaska = new Cat(); vaska = murzik; Создаются два объекта, ссылки на которые присваиваются двум разным переменным. Затем, переменной vaska присваивается ссылка на объект, содержащийся в переменной murzik. Теперь обе переменных ссылаются на первый созданный объект. (На второй больше никто не ссылается – второй объект считается мусором)
  Cat murzik = new Cat(); Cat vaska = null; vaska = murzik; murzik = null; Создаётся один объект типа Cat, ссылка на который заносится в первую переменную (murzik), вторая переменная (vaska) содержит пустую (нулевую) ссылку. Обе переменных ссылаются на один объект. Теперь только vaska ссылается на объект, но не murzik.

- А что будет, если просто создать объект и не присваивать его [ссылку] никакой переменной?

- Если просто создать объект и не присвоить его никакой переменной, то Java-машина создаст его и тут же объявит его мусором (неиспользуемым объектом). А через некоторое время удалит его в процессе «сборки мусора».

- А как мне уничтожить объект, если он мне больше не нужен?

- Никак. Как только не останется ни одной переменной, хранящей ссылки на данный объект, он будет помечен как мусор и убран: уничтожен Java-машиной при следующей «сборке мусора».

Пока есть хоть одна ссылка на объект, он считается живым и уничтожаться не будет. Если хочешь побыстрее уничтожить объект – обнули все ссылки на него: присвой всем переменным, ссылающимся на него, значение null.

- Понятно. Вроде и не сложно совсем после предыдущих уроков.

- Диего вчера сидел всю ночь и придумывал для тебя интересные задачи. Специально для тебя старался. У него отличное чувство юмора, кстати

 

Риша

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

- А что, бывают и невидимые переменные?

- Нет, под «видимостью переменных» подразумевают места в коде, где к этой переменной можно обратиться. К некоторым переменным можно обращаться отовсюду в программе, к другим только в пределах их класса, к третьим же только внутри одного метода.

- Например, ты не можешь обратиться к переменной раньше, чем она объявлена.

- Логично.

- Вот несколько примеров:

1 Переменная, объявленная в методе, существует/видна с начала объявления до конца метода.

2 Переменная, объявленная в блоке кода, существует до конца этого блока кода.

3 Переменные - аргументы метода - существуют везде внутри метода.

4 Переменные класса/объекта существуют все время жизни содержащего их объекта. Их видимость дополнительно регулируется специальными модификаторами доступа: public, private.

5 Статические переменные классов существуют все время работы программы. Их видимость также определяется модификаторами доступа.

- Обожаю картинки, на них все всегда понятно.

- Молодец, Амиго. Всегда знал, что ты сообразительный малый.

- Еще расскажу тебе про «модификаторы доступа». Да не пугайся ты так, ничего сложного в них нет. Это слова public и private, которые ты видишь.

- А я и не пугаюсь – это у меня глаз дергается.

- Верю, верю. Ты можешь управлять доступом (видимостью) методов и переменных твоего класса из других классов. Каждому методу или переменной можно указывать только один модификатор доступа.

1 Модификатор «public».

К переменной, методу или классу, помеченному модификатором public, можно обращаться из любого места программы. Это самая высокая степень открытости - никаких ограничений нет.

2 Модификатор «private».

К переменной или методу, помеченному модификатором private, можно обращаться только из того же класса, где он объявлен. Для всех остальных классов помеченный метод или переменная - невидимы и «как бы не существуют». Это самая высокая степень закрытости – только свой класс.

3 Без модификатора.

Если переменная или метод не помечены никаким модификатором, то считается, что они помечены «модификатором по умолчанию». Переменные или методы с таким модификатором (т.е. вообще без какого-нибудь) видны всем классам пакета, в котором они объявлены. И только им. Этот модификатор еще иногда называют «package», намекая, что доступ к переменным и методам открыт для всего пакета, в котором находится их класс

Таблица с пояснением:

Модификаторы Доступ из…
Своего класса Своего пакета Любого класса
private Есть Нет Нет
нет модификатора (package) Есть Есть Нет
public Есть Есть Есть

Диего

- Привет, дружище. Я сберёг для тебя копию контракта, если что. Этот подлый скряга Риша пребывает в счастливом неведении. Видел бы ты цифры в моем контракте. Хе-хе.

- Молодец, Диего. Я думаю, ты научишь меня реально полезным вещам.

- Конечно, Амиго. В большом мире слишком много глупцов, которые хотят разбогатеть, ничего не делая. Но ещё больше глупцов, которые работают бесплатно.

- Давай лучше займёмся учёбой. Сейчас я научу тебя создавать кучу переменных разными способами:

  Пример Пояснение
  String s1 = new String(); String s2 = ""; Создание двух идентичных пустых строк.
  int a; Создание переменной типа int;
  int a = 5; Создание переменной типа int, установка её значения равным 5
  int a = 5, b = 6; Создание переменной a типа int, установка ей значения 5Создание переменной b типа int, установка ей значения 6
  int a = 5, b = a + 1; Создание переменной a типа int, установка ей значения 5Создание переменной b типа int, установка ей значения 6
  Date date = new Date(); Создание объекта типа «Дата». В каждый объект типа «дата» после создания заносится текущее время и дата.
  boolean isTrue = true; Переменная логического типа инициализируется значением true (истина)
  boolean isLess = (5 > 6); В переменную isLess заносится значение false (ложь). Других значений тип boolean не принимает.

- Круто, Диего! Ты всегда так просто объясняешь.

- Хе-хе! Спасибо, Амиго.


Дата добавления: 2015-10-29; просмотров: 147 | Нарушение авторских прав


Читайте в этой же книге: Продолжение знакомства (Риша) | Знакомство с Элли | Знакомство с профессором | Знакомство с Ким | Будущее наступило | Знакомство с программой | Сравнение с паскалем |
<== предыдущая страница | следующая страница ==>
Программа - это взаимодействие объектов.| Диего рассказывает, как написать простейшую программу

mybiblioteka.su - 2015-2024 год. (0.007 сек.)