Уровень доступа
В информатике и программировании компьютерном уровень доступа обозначает набор разрешений или ограничений, предоставляемых типу данных . Снижение уровня доступа — эффективный метод ограничения режимов сбоев , сокращения времени отладки и упрощения общей сложности системы. Он ограничивает изменение переменных только методами, определенными в интерфейсе класса. Таким образом, он включен во многие фундаментальные шаблоны проектирования программного обеспечения . В общем, данный объект не может быть создан, прочитан, обновлен или удален какой-либо функцией без достаточного уровня доступа.
Двумя наиболее распространенными уровнями доступа являются public и Private , которые обозначают соответственно; разрешение на всю область действия программы или разрешение только внутри соответствующего класса. Третий, protected , расширяет разрешения на все подклассы соответствующего класса. Модификаторы уровней доступа обычно используются в Java. [1] а также C#, который дополнительно обеспечивает внутренний уровень. [2] В C++ единственное различие между структурой и классом — это уровень доступа по умолчанию, который является частным для классов и открытым для структур. [3]
Чтобы проиллюстрировать это преимущество: рассмотрим общедоступную переменную, доступ к которой можно получить из любой части программы. Если возникает ошибка, виновник может находиться в любой части программы, включая различные подзависимости. В большой базе кода это приводит к появлению тысяч потенциальных источников. В качестве альтернативы рассмотрим частную переменную. Из-за ограничений доступа все изменения его значения должны происходить с помощью функций, определенных внутри класса. Следовательно, ошибка структурно содержится внутри класса. Часто для каждого класса существует только один исходный файл, а это означает, что для отладки требуется оценка только одного файла. При достаточной модульности и минимальном уровне доступа большие базы кода позволяют избежать многих проблем, связанных со сложностью. [4]
Пример: Класс банковского баланса
[ редактировать ]Получено из вопросов и ответов на кофе-брейк Java. [5]
public class bank_balance { public String owner; private int balance; public bank_balance( String name, int dollars ) { owner = name; if (dollars >= 0) balance = dollars; else dollars =0; } public int getBalance() { return balance; } public void setBalance(int dollars) { if (dollars >= 0) balance = dollars; else dollars = 0; } }
Здесь императивная переменная Balance определяется как частное int . Это гарантирует, что другие классы, методы и функции не смогут случайно перезаписать переменную Balance. Вместо этого они должны получить доступ к интерфейсу класса bank_balance , методы которого гарантируют, что баланс не может упасть ниже 0.
Ссылки
[ редактировать ]- ^ «Управление доступом к членам класса (Учебные пособия по Java > Изучение языка Java > Классы и объекты)» . docs.oracle.com . Проверено 22 ноября 2016 г.
- ^ «Модификаторы доступа (Справочник по C#)» . msdn.microsoft.com . Проверено 22 ноября 2016 г.
- ^ «Дружба и наследование — Учебники по C++» . www.cplusplus.com . Проверено 23 ноября 2016 г.
- ^ «Зачем нам нужны частные переменные?» . Softwareengineering.stackexchange.com . Проверено 22 ноября 2016 г.
- ^ «Вопросы и ответы: В чем разница между общедоступными, частными и защищенными переменными?» .