Jump to content

Уровень доступа

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

Двумя наиболее распространенными уровнями доступа являются 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.

  1. ^ «Управление доступом к членам класса (Учебные пособия по Java > Изучение языка Java > Классы и объекты)» . docs.oracle.com . Проверено 22 ноября 2016 г.
  2. ^ «Модификаторы доступа (Справочник по C#)» . msdn.microsoft.com . Проверено 22 ноября 2016 г.
  3. ^ «Дружба и наследование — Учебники по C++» . www.cplusplus.com . Проверено 23 ноября 2016 г.
  4. ^ «Зачем нам нужны частные переменные?» . Softwareengineering.stackexchange.com . Проверено 22 ноября 2016 г.
  5. ^ «Вопросы и ответы: В чем разница между общедоступными, частными и защищенными переменными?» .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d57e3189b81260f968fef5d20ac4430a__1705280760
URL1:https://arc.ask3.ru/arc/aa/d5/0a/d57e3189b81260f968fef5d20ac4430a.html
Заголовок, (Title) документа по адресу, URL1:
Access level - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)