Ограничение области действия

Устанавливается {} и ограничивает видимость переменной и время ее жизни.

{

int x = 12; // доступно x

{

int q = 96; // доступно x и q

int x = 98; // для локальных переменных-ошибка

}

// доступно x, q – за пределами видимости

}

Область действия объектов

{

String s = new String (“abcd”);

} //Ссылка s исчезла

.

Объект String еще существует, но уже не доступен, т.к. на него уже не указывает никакая ссылка.

Работает программа gabage collector, она уничтожает объекты, на которые нет ссылок. Еe можно и вызвать: System. gc();

Создание новых типов данных

Описание нового типа (класса) (или определение)

class ATypeName { / *тело класса/*}

Теперь можно создать объект этого типа – объявление и создание объекта а

ATypeName a = new ATypeName ();

Поля и методы

Класс содержит следующие элементы (member – члены класса):

- поля (переменные) – (fields);

- методы (функции)- (methods).

Полем может быть:

- ссылка на объект;

- примитив.

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

Для каждого класса создается общий блок памяти один на все объекты этого класса для хранения методов и статических переменных.

Пример класса с полями:

class DataOnly {

int 1;

double d;

boolean b;

}

Объект этого класса:

DataOnly data = new DataOnly ();

Для присваивания значений -синтаксис ссылка.поле

data.i = 47;

data.d = 1.1;

data.b = false;

Объект может содержать ссылки на другие объекты:

myPlane.leftTank.capacity = 100;

Значения по умолчанию для полей примитивных типов

Поля примитивных типов по умолчанию инициализируются нулями.

boolean false
char ‘/u0000’
byte (byte) 0
short (short) 0
int  
long 0L
float 0.0f
double 0.0

Поля -ссылки инициализируются значением null.

Локальные переменные при создании хранят случайные значения.

f() { int x; } x-локальная переменная, в ней -мусор.

Методы, аргументы и возвращаемые значения

Вызов метода – сообщение, принимаемое объектом. Синтаксис:

Возвращаемый тип имя Метода (список аргументов) -это сигнатура метода

{

// тело метода

}

Методы могут быть только частями класса. Вне классов (как в С++) методов быть не может.

Метод вызывается для объекта:

имя Объекта. имя Метода (арг1, арг2…)

Например:

int x = a.f(5); // посылка сообщения объекту а

Список аргументов

В списке аргументов: типы предаваемых объектов и их имена (ссылки). Внутри класса -определение метода.

int storage (String s)

{

return s.length () *2;

}

return означает: 1) выйти из метода

2) возвратить результат.

s.length (): вызывается метод length() объекта s. Возвращает количество символов в строке.

Примеры:

boolean flag() {return true;}

float naturalLogBase () {return 2.718;}

void nothing () {return;}

void nothing2 () {}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: