Модификатор доступа Private
Модификатор доступа Private
В некоторых языках есть так называемые модификаторы доступа. Они меняют возможности доступа к элементам структуры/класса, функциям. И в разных языках эти модификаторы доступы разные. Иногда они прям ставят в тупик при переключении между языками программирования. Например, в Си подобных языках модификатором доступа будет слово private:
C++
class Example {
private int a
private void foo(){}
}java
public class Bicycle {
private int speed;
private void speedUp(int increment) {
speed += increment;
}
}В других языках модификатором доступа может быть заглавном имени поля (если название метода/поля написано с заглавной буквы – оно публично), например в Go.
Go
type FooBar struct {
privateVar int
PublicVar int
}Есть языки которых приватность организуется наличием _ перед названием переменной, например Dart.
Dart
class NewBox extends StatelessWidget {
String _name;
}Python
А есть языки со своим особым подходом, например Python. Там свой особый подход:
- если довать к началу имени переменнеой
__– это означает, что переменная вроде как приватная, но доступ к ней все-так иимеется; - если довать к началу имени переменнеой
_– это означает, что переменная вроде как приватная, но доступ к ней все-так иимеется, но и трогать её рекомендуется только технически грамотным специалистам.
То есть вся приватность держится исключительно на договоренности между разработчиками.
class A:
def _secret(self):
print("Это метод для технических подкованных!")
def _private(self):
print("Это приватный метод!")