Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП.doc
Скачиваний:
1
Добавлен:
24.09.2019
Размер:
522.24 Кб
Скачать

Вопрос 4) Доступ к членам класса. Закрытые и открытые члены класса.

Вот 3 модификатора присутствующих почти во всех объектно ориентированных языках:

  1. Private - методы и поля будут доступны только внутри данного класса

  2. Protected – методы и поля будут доступны в нутри класса и в нутри его наследников

  3. Public – методы и поля будут доступны программисту.

Обычно всем полям назначают модификатор доступа protected или private, что позволяет защитить данные внутри класса от не санкционированного доступа, что обеспечивает более стабильную работу, т.к. все изменения в полях происходят только при обращении определенному методу, которые уже изменяет поля внутри объекта.

Вопрос 5) Принцип инкапсуляции

Принцип инкапсуляции.

  1. Инкапсуляция есть объединение в единое целое данных и алгоритмов обработки этих данных. В рамках ООП данные называются полями объекта, а алгоритмы - объектными методами.

  2. Также инкапсуляция позволяет защитить доступ к полям объектв и к определенным методам используя модификаторы доступа. Вот 3 модификатора присутствующих почти во всех объектно ориентированных языках:

    1. Private - методы и поля будут доступны только внутри данного класса

    2. Protected – методы и поля будут доступны внутри класса и внутри его наследников

    3. Public – методы и поля будут доступны программисту.

Обычно всем полям назначают модификатор доступа protected или private, что позволяет защитить данные внутри класса от не санкционированного доступа, что обеспечивает более стабильную работу, т.к. все изменения в полях происходят только при обращении определенному методу, которы уже изменяет поля внутри объекта.

Вопрос 6) Методы. Способы передачи параметров

Методы.

Мутоды это функции обесппечивающие работу в с полями объекта. Также методы могут быть закрыты и использоватся для вычисления промежуточных значений внутри объекта.

Есть два способа передачи параметров в метод:

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

  2. По ссылки, Это значит что в метод будет передан только адрес в ОП по которому находится значение переменной. Следовательно что любое изменение переменной внутри метода изменить значение перменной и в вызывающем окружении.

Также метод может быть статичиским, что это значит:

Это значит что мы можем описать в классе метод для работы снашим классом, и чтобы не создовать еще один объект в который мы передадим уже существующий объект для вычисление каких либо данных. А вызовем статичиский метод без создание экземпляра класса и передадим уже в качестве параметра наш объект, статичииский метод вернет нам результат вычисления.

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

Пример СИ++:

Класс английских длинн

Class test

{

Private:

Int feet;

Float inches;

Public:

Test() // конструктор без параметров

{

Feet=0;

Inches = 0;

}

Test(int f,float i) // конструктор с параметрами

{

Feet = f;

Inches = I;

}

Void ShowTest()

{

Cout<<feet<<” - ”<<inches<<endl;

}

Static test AddSixInches(test *t1) // добавить 6 дюймов

{

Float I = t1->inches;

Int f = t1->feet

I+=6;

If(i>12){

F++;

I - =12;

}

T1->feet = f;

T1->inches =I;

}

}

Void main()

{

Test d1(5,7);

D1.ShowTest(); // выведет 5-7

Test::AddSixInches(&d1);

D1.ShowTest(); // выведет 6-1

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]