public (справочник по C#)
Ключевое слово public является модификатором доступа для типов и членов типов. Общий доступ является уровнем доступа с максимальными правами. Ограничений доступа к общим членам не существует, как показано в следующем примере:
class SampleClass < public int x; // No access restrictions. >
Дополнительные сведения см. в разделах Модификаторы доступа и Уровни доступности.
Пример
В следующем примере объявляются два класса: PointTest и Program . Доступ к открытым членам x и y класса PointTest осуществляется непосредственно из класса Program .
class PointTest < public int x; public int y; >class Program < static void Main() < var p = new PointTest(); // Direct access to public members. p.x = 10; p.y = 15; Console.WriteLine($"x = , y = "); > > // Output: x = 10, y = 15
Если уровень доступа public изменить на private или protected, будет выводится следующее сообщение об ошибке:
«PointTest.y» недоступен из-за его уровня защиты.
Спецификация языка C#
Дополнительные сведения см. в разделе Объявленная доступность в Спецификации языка C#. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#.
См. также
- Справочник по C#
- Руководство по программированию на C#
- Модификаторы доступа
- Ключевые слова в C#
- Модификаторы доступа
- Уровни доступности
- Модификаторы
- private
- protected
- internal
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
The .NET documentation is open source. Provide feedback here.
Обратная связь
Отправить и просмотреть отзыв по
public (C++)
При выполнении списка членов класса ключевое слово указывает, public что эти члены доступны из любой функции. Это применяется ко всем членам, объявленным до следующего описателя доступа или до конца класса.
При выполнении имени базового класса public ключевое слово указывает, что общедоступные и защищенные члены базового класса являются общедоступными и защищенными элементами соответственно производного класса.
Доступ членов в классе по умолчанию является закрытым. Доступ членов в структуре или объединении по умолчанию является открытым.
Доступ базового класса по умолчанию является закрытым для классов и открытым для структур. Объединения не могут иметь базовые классы.
Дополнительные сведения см . в частной, защищенной, другом и таблице доступа к членам в разделе «Управление доступом к членам класса».
Специально для /clr
В типах СРЕДЫ CLR описатель доступа C++ ключевое слово ( public , private и protected ) может повлиять на видимость типов и методов в отношении сборок. Дополнительные сведения см. в разделе «Члены контроль доступа».
Файлы, скомпилированные с помощью /LN , не влияют на это поведение. В этом случае все управляемые классы (открытые или закрытые) будут видны.
КОНЕЦ специально для /clr
Пример
// keyword_public.cpp class BaseClass < public: int pubFunc() < return 0; >>; class DerivedClass : public BaseClass <>; int main() < BaseClass aBase; DerivedClass aDerived; aBase.pubFunc(); // pubFunc() is accessible // from any function aDerived.pubFunc(); // pubFunc() is still public in // derived class >
Public в c что это
Все поля, методы и остальные компоненты класса имеют модификаторы доступа . Модификаторы доступа позволяют задать допустимую область видимости для компонентов класса. То есть модификаторы доступа определяют контекст, в котором можно употреблять данную переменную или метод.
В языке C# применяются следующие модификаторы доступа:
- private : закрытый или приватный компонент класса или структуры. Приватный компонент доступен только в рамках своего класса или структуры.
- private protected : компонент класса доступен из любого места в своем классе или в производных классах, которые определены в той же сборке.
- file : добавлен в версии C# 11 и применяется к типам, например, классам и структурам. Класс или структура с такми модификатором доступны только из текущего файла кода.
- protected : такой компонент класса доступен из любого места в своем классе или в производных классах. При этом производные классы могут располагаться в других сборках.
- internal : компоненты класса или структуры доступен из любого места кода в той же сборке, однако он недоступен для других программ и сборок.
- protected internal : совмещает функционал двух модификаторов protected и internal . Такой компонент класса доступен из любого места в текущей сборке и из производных классов, которые могут располагаться в других сборках.
- public : публичный, общедоступный компонент класса или структуры. Такой компонент доступен из любого места в коде, а также из других программ и сборок.
Стоит отметить, что эти модификаторы могут применяться как к компонентам класса, так и к компонентам структуры за тем исключением, что структуры не могут использовать модификаторы private protected , protected и protected internal , поскольку структуры не могут быть унаследованы.
Все классы и структуры, определенные напрямую вне других типов (классов и структур) могут иметь только модификаторы public , file или internal .
Мы можем явно задать модификатор доступа, а можем его и не указывать:
public class Person < string name; public Person(string name) < this.name = name; >public void Print() => Console.WriteLine($"Name: "); >
Если для компонентов не определен модификатор доступа, то по умолчанию для них применяется модификатор private . Например, в примере выше переменная name неявно будет иметь модификатор private .
Классы и структуры, которые объявлены без модификатора и которые расположены вне других типов, по умолчанию имеют доступ internal , а вложенные классы и структуры, как и остальные компоненты классов/структур имеют модификатор private . Например:
class Phone < struct Camera < >>
Здесь класс Phone не является вложенным ни в один другой класс/структуру, поэтому неявно имеет модификатор internal . А структура Camera является вложенной, поэтому, как и другие компоненты класса, неявно имеет модификатор private
Модификаторы в рамках текущего проекта
Посмотрим на примере и создадим следующий класс State:
class State < // все равно, что private string defaultVar; string defaultVar ="default"; // поле доступно только из текущего класса private string privateVar = "private"; // доступно из текущего класса и производных классов, которые определены в этом же проекте protected private string protectedPrivateVar = "protected private"; // доступно из текущего класса и производных классов protected string protectedVar = "protected"; // доступно в любом месте текущего проекта internal string internalVar = "internal"; // доступно в любом месте текущего проекта и из классов-наследников в других проектах protected internal string protectedInternalVar = "protected internal"; // доступно в любом месте программы, а также для других программ и сборок public string publicVar = "public"; // по умолчанию имеет модификатор private void Print() =>Console.WriteLine(defaultVar); // метод доступен только из текущего класса private void PrintPrivate() => Console.WriteLine(privateVar); // доступен из текущего класса и производных классов, которые определены в этом же проекте protected private void PrintProtectedPrivate() => Console.WriteLine(protectedPrivateVar); // доступен из текущего класса и производных классов protected void PrintProtected() => Console.WriteLine(protectedVar); // доступен в любом месте текущего проекта internal void PrintInternal() => Console.WriteLine(internalVar); // доступен в любом месте текущего проекта и из классов-наследников в других проектах protected internal void PrintProtectedInternal() => Console.WriteLine(protectedInternalVar); // доступен в любом месте программы, а также для других программ и сборок public void PrintPublic() => Console.WriteLine(publicVar); >
Так как класс State не имеет явного модификатора, по умолчанию он имеет модификатор internal , поэтому он будет доступен из любого места данного проекта, однако не будет доступен из других программ и сборок.
Класс State имеет шесть полей для каждого уровня доступа. Плюс одна переменная без модификатора, которая является закрытой (private) по умолчанию. А также определено семь методов с разными модификаторами, которые выводят значения соответствующих переменных на консоль. Поскольку все модификаторы позволяют использовать компоненты класса внутри данного класса, то и все переменные класса, в том числе закрытые, у нас доступны всем его методам, так как все находятся в контексте класса State.
Теперь посмотрим, как мы сможем использовать переменные класса State в другом классе, который, допустим, будет называться StateConsumer и который расположен в том же проекте :
class StateConsumer < public void PrintState() < State state = new State(); // обратиться к переменной defaultVar у нас не получится, // так как она имеет модификатор private и класс StateConsumer ее не видит Console.WriteLine(state.defaultVar); //Ошибка, получить доступ нельзя // то же самое относится и к переменной privateVar Console.WriteLine(state.privateVar); // Ошибка, получить доступ нельзя // обратиться к переменной protectedPrivateVar не получится, // так как класс StateConsumer не является классом-наследником класса State Console.WriteLine(state.protectedPrivateVar); // Ошибка, получить доступ нельзя // обратиться к переменной protectedVar тоже не получится, // так как класс StateConsumer не является классом-наследником класса State Console.WriteLine(state.protectedVar); // Ошибка, получить доступ нельзя // переменная internalVar с модификатором internal доступна из любого места текущего проекта // поэтому можно получить или изменить ее значение Console.WriteLine(state.internalVar); // переменная protectedInternalVar так же доступна из любого места текущего проекта Console.WriteLine(state.protectedInternalVar); // переменная publicVar общедоступна Console.WriteLine(state.publicVar); >>
Таким образом, в классе StateConsumer мы смогли только обратиться к переменным internalVar, protectedInternalVar и publicVar, так как их модификаторы позволяют использовать в данном контексте.
Аналогично дело обстоит и с методами:
class StateConsumer < public void PrintState() < State state = new State(); state.Print(); //Ошибка, получить доступ нельзя state.PrintPrivate(); // Ошибка, получить доступ нельзя state.PrintProtectedPrivate(); // Ошибка, получить доступ нельзя state.PrintProtected(); // Ошибка, получить доступ нельзя state.PrintInternal(); // норм state.PrintProtectedInternal(); // норм state.PrintPublic(); // норм >>
Здесь нам оказались доступны только три метода: PrintInternal, PrintProtectedInternal, PrintPublic, которые имееют соответственно модификаторы internal, protected internal, public.
Модификаторы в рамках сборок
Допустим, у нас есть проект (и соответственно сборка) MyLib, в которой определены три класса:
namespace MyLib; // класс доступен из других сборок public class PublicState < internal void PrintInternal() =>Console.WriteLine(«internal»); protected internal void PrintProtectedInternal() => Console.WriteLine(«protected internal»); public void PrintPublic() => Console.WriteLine(«public»); > // класс доступен только в текущей сборке — по умолчанию internal class DefaultState < >// класс доступен только в текущей сборке internal class InternalState
Здесь классы DefaultState и InternalState имеют модификатор internal , поэтому доступны только в текущем проекте.
Класс PublicState модификатором public доступен из других проектов. Однако его метод PrintInternal() доступен только в текущем проекте. Вне текущего проекта доступен только его метод PrintPublic и PrintProtectedInternal() (доступен в другом проекте только в классах-наследниках).
Допустим, мы подключаем сборку этого проекта MyLib в другой проект, где есть класс StateConsumer:
using MyLib; class StateConsumer < public void PrintState() < // Ошибка DefaultState - по умолчанию internal, поэтому нет доступа DefaultState defaultState = new DefaultState(); // Ошибка InternalState - internal, поэтому нет доступа InternalState internalState = new InternalState(); // норм, PublicState - public, доступен из других программ PublicState publicState = new PublicState(); // Ошибка, нет доступа - метод доступен только в свой сборке publicState.PrintInternal(); // Ошибка, нет доступа - StateConsumer НЕ является классом-наследником от класса PublicState, // поэтому метод не доступен publicState.PrintProtectedInternal(); // нет доступа // норм - общедоступный метод publicState.PrintPublic(); // норм >>

В классе StateConsumer есть доступ только к классу PublicState и его методу PrintPublic , потому что они имеют модификатор public . К остальной функциональности подключенной сборки StateConsumer доступа не имеет.
Благодаря такой системе модификаторов доступа можно скрывать некоторые моменты реализации класса от других частей программы.
Файл как область видимости
C# 11 был добавлен еще один модификатор видимости — file , который применяется к классам, структурам, делегатам, перечислениям, интерфейсам. Типы с этим модификатором могут использоваться только внутри текущего файла кода.
file class Person
Данный модификатор не может использоваться в паре с другими модификаторами.
Что такое public void c и как его использовать

Ключевое слово «public» в программировании обозначает видимость метода или переменной в других частях программы. В языке программирования Java «public» означает, что метод или переменная доступна для использования в любой части программы. Следующее ключевое слово «void» указывает, что метод не возвращает какое-либо значение. Когда метод объявлен с типом «void», это означает, что данный метод выполняет определенные действия, но не возвращает никакого значения.
Ключевое слово «c» в выражении «public void c» является именем метода. В программировании имя метода представляет собой идентификатор, который используется для его вызова или ссылки на него. Имя метода может быть любым словом, но желательно использовать осмысленные имена для повышения читабельности кода. Например, если метод выполняет сложение двух чисел, его имя может быть «sum», «add» или что-то подобное.
Пример использования выражения «public void c» может выглядеть следующим образом:
В данном примере мы объявляем метод с именем «c», который не принимает никаких аргументов и не возвращает значений. В теле метода находится одна строка кода, которая выводит на экран фразу «Hello, World!». Для вызова данного метода в другом месте программы следует использовать его имя, за которым следует круглые скобки. Например, для вызова метода «c» можно написать «c();».
Public void C что это
Ключевое слово public в Java означает, что метод или переменная доступны для использования в любом месте программы.
Ключевое слово void обозначает, что метод не возвращает никакого значения.
c в названии public void c скорее всего является именем метода или переменной. Обычно в Java методы и переменные называются согласно некоторым соглашениям. Обычно методы называются с использованием глаголов, чтобы указать на действие, выполняемое методом. Возможно, c — это сокращение от слова «создать» или какого-то другого глагола, указывающего на действие метода.
Примеры использования конструкции public void c:
- public void calculateSum(int a, int b) — метод, который вычисляет сумму двух чисел и не возвращает результат;
- public void printMessage() — метод, который печатает на экране какое-то сообщение;
- public void createUser(String name, int age) — метод, который создает нового пользователя с указанным именем и возрастом.
Описание и примеры использования
Public void – это модификатор доступа в Java, который указывает на то, что метод не возвращает значение. Вместо этого метод выполняет определенные действия или операции.
Ключевое слово public обозначает, что метод доступен для использования во всех частях программы.
Ключевое слово void указывает на тип возвращаемого значения метода, в данном случае — отсутствие значения.
Методы с модификатором public void могут принимать аргументы и выполнять несколько операций, но результат их работы не возвращается.
Вот пример использования метода с модификатором public void:
public class Example
public void showMessage(String message)
System.out.println(«Сообщение: » + message);
>
public void calculateSum(int a, int b)
int sum = a + b;
System.out.println(«Сумма чисел: » + sum);
>
>
public class Main
public static void main(String[] args)
Example example = new Example();
example.showMessage(«Привет, Мир!»);
example.calculateSum(5, 3);
>
>
В данном примере класс Example содержит два метода с модификатором public void – showMessage и calculateSum.
Метод showMessage принимает строковый аргумент и выводит сообщение на экран.
Метод calculateSum принимает два целочисленных аргумента, складывает их и выводит сумму на экран.
В методе main создается объект класса Example и вызываются его методы showMessage и calculateSum.
Результат работы методов выводится на экран:
- Сообщение: Привет, Мир!
- Сумма чисел: 8
Таким образом, использование методов с модификатором public void позволяет выполнять действия или операции без возвращения значения.
Как использовать public void C в программировании
public void C — это синтаксическая конструкция языка программирования Java, которая указывает на объявление метода без возвращаемого значения. Такой метод выполняет определенные действия, но не возвращает какое-либо значение после выполнения.
Основное назначение методов с модификатором public void C в программировании — выполнение действий без возвращаемого результата. Это может быть полезно, когда не требуется получать результат выполнения метода, а просто нужно выполнить некоторые действия или изменить состояние программы.
Ниже приведен пример использования public void C:
public class Example
public void doSomething()
// выполняем необходимые действия
System.out.println(«Выполняется метод doSomething()»);
// не возвращаем никакого значения
>
>
В данном примере создается класс Example с методом doSomething(). Внутри этого метода выполняются определенные действия, в данном случае выводится сообщение на консоль.
Пример вызова метода:
public class Main
public static void main(String[] args)
Example example = new Example();
example.doSomething(); // вызов метода doSomething()
>
>
В данном примере создается объект класса Example и вызывается его метод doSomething(). Как результат, на консоль будет выведено сообщение «Выполняется метод doSomething()».
public void C также может быть использован для изменения состояния программы. Например, метод может изменять значения полей объекта или выполнять другие операции, влияющие на состояние программы.
Важно помнить, что public void C не возвращает никакого значения, и поэтому не может быть использован в выражениях или присваиваниях других переменных.
Public void C: примеры кода и рекомендации по использованию
Public void C — ключевое слово в программировании на языке Java, которое используется для определения метода, который не возвращает никакого значения.
Пример использования public void C:
- Создайте новый Java-класс с именем «Example».
- Внутри класса «Example» создайте метод с именем «printHelloWorld».
- Используйте ключевое слово public для указания модификатора доступа, чтобы метод был доступен из других частей программы.
- Используйте ключевое слово void для указания, что метод не возвращает никакого значения.
- Используйте ключевое слово printHelloWorld в качестве имени метода.
- Внутри метода напишите код, который будет выводить на экран сообщение «Hello, World!»
- В итоге, ваш Java-класс «Example» должен выглядеть следующим образом:
public class Example
public void printHelloWorld()
Для использования метода «printHelloWorld» из другого класса, вам необходимо создать экземпляр класса «Example» и вызвать метод «printHelloWorld» на этом экземпляре.
Вот пример кода, который демонстрирует использование метода «printHelloWorld»:
public class Main
public static void main(String[] args)
Example example = new Example();
При выполнении этого кода на экран будет выведено сообщение «Hello, World!»
Важно отметить, что ключевое слово public void C может использоваться не только для методов, но и для конструкторов классов. В этом случае, метод или конструктор будет выполнять определенные действия при создании экземпляра класса, без возвращения значения.
Вопрос-ответ
Что такое public void в Java?
Ключевое слово «public» в Java указывает на то, что метод или переменная доступна для использования во всем коде программы. Ключевое слово «void» указывает на то, что метод не возвращает никакого значения. То есть, public void означает, что метод открыт для всех, но не возвращает никакого результата.
Какие примеры использования public void в Java?
Примеры использования public void в Java включают создание метода, который выводит текст на экран, записывает данные в файл, обновляет значения в базе данных или выполняет любые другие действия, которые не требуют возврата значения.
Можно ли использовать public void без аргументов в Java?
Да, можно использовать public void без аргументов в Java. Например, метод может просто выводить текст на экран или записывать данные в файл без необходимости передавать какие-либо аргументы.
Что произойдет, если вам нужно вернуть значение из метода, но вы используете public void?
Если вам нужно вернуть значение из метода, но вы используете public void, то вам придется изменить объявление метода на тип, соответствующий возвращаемому значению. Например, если вам нужно вернуть целое число, вы должны использовать «public int» вместо «public void».
В чем разница между public void и public static void в Java?
Разница между public void и public static void в Java заключается в том, что ключевое слово «static» указывает на то, что метод или переменная принадлежит классу, а не объекту. Это означает, что метод можно вызывать без создания экземпляра класса. Оба ключевых слова «public» и «void» указывают на доступность метода и его отсутствие возвращаемого значения соответственно.
