Именски простор (информатика) — разлика између измена

Садржај обрисан Садржај додат
Ред 9:
 
== Употреба у уобичајеним језицима ==
У -{[[ЦC++,]]}- језику, именски простор је дефинисан са блоком именског простора.
<source lang="cpp">
namespace abc {
Ред 20:
</source>
парчету кода, чини префикс <code>abc::</code> непотребним.
 
 
Код који није експлицитно декларисан унутар именског простора сматра се да је у глобалном именском простору.
 
Разрешавање именског простора у Ц-{C++}- је хијерархијско. То значи да се у оквиру хипотетичког именског простора <code>храна::супа</code> идентификатор <code>пилећа</code> односи на <code>храна::супа::пилећа</code> ако постоји. Ако не постоји, онда се односи на <code>храна::пилећа</code> ако то постоји. Ако ни то не постоји, <code>пилећа</code> се односи на глобални идентификатор у именском простору.
 
Именски простори у Ц-{C++}- најчешће се користе како би се избегле [[колизије именовања]]. Иако се именски простори обимно користе у скорашњем Ц-{C++}- коду, већина старијег кода не користи ову погодност. На пример, цела [[Ц-{C++}- стандардна библиотека]] дефинисана је у оквиру <code>namespace std</code> али пре стандардизације многе компоненте су првобитно биле у глобалном именском простору.
Разрешавање именског простора у Ц++ је хијерархијско. То значи да се у оквиру хипотетичког именског простора <code>храна::супа</code> идентификатор <code>пилећа</code> односи на <code>храна::супа::пилећа</code> ако постоји. Ако не постоји, онда се односи на <code>храна::пилећа</code> ако то постоји. Ако ни то не постоји, <code>пилећа</code> се односи на глобални идентификатор у именском простору.
 
У [[Јава (програмски језик)|Јава програмском језику,]] идеја именског простор је отелотворена у [[Јава пакетима]]. Сав код припада пакету, мада тај пакет не мора бити изричито именован. Коду из других пакета приступа се стављањем имена пакета пре одговарајућег идентификатора, на пример <code>class String</code> у <code>package [[java.lang]]</code> може се навести као <code>java.lang.</code><code>String</code> (ово се назива потпуно [[квалификована имена класа).]] Попут Ц-{C++}-, Јава нуди конструкт који чини куцање имена пакета непотребним <code>import</code> Међутим, неке функције (као што је [[одраз)]] захтевају да програмер користи у потпуности квалификовано име.
 
За разлику од Ц-{C++}- именски простори у Јави нису хијерархијски што се тиче синтаксе језика. Међутим, пакети су именовани на хијерархијски начин. На пример, сви пакети који почињу са <code>java</code> део су [[Јава платформа-пакета]] {{Javadoc:SE|package=java.lang|java/lang}} који садржи основне класе језика, а {{Javadoc:SE|package=java.lang.reflect|java/lang/reflect}} садржи класе које се посебно односе на рефлексију.
Именски простори у Ц++ најчешће се користе како би се избегле [[колизије именовања]]. Иако се именски простори обимно користе у скорашњем Ц++ коду, већина старијег кода не користи ову погодност. На пример, цела [[Ц++ стандардна библиотека]] дефинисана је у оквиру <code>namespace std</code> али пре стандардизације многе компоненте су првобитно биле у глобалном именском простору.
 
 
У [[Јава програмском језику,]] идеја именског простор је отелотворена у [[Јава пакетима]]. Сав код припада пакету, мада тај пакет не мора бити изричито именован. Коду из других пакета приступа се стављањем имена пакета пре одговарајућег идентификатора, на пример <code>class String</code> у <code>package [[java.lang]]</code> може се навести као <code>java.lang.</code><code>String</code> (ово се назива потпуно [[квалификована имена класа).]] Попут Ц++ Јава нуди конструкт који чини куцање имена пакета непотребним <code>import</code> Међутим, неке функције (као што је [[одраз)]] захтевају да програмер користи у потпуности квалификовано име.
 
 
За разлику од Ц++ именски простори у Јави нису хијерархијски што се тиче синтаксе језика. Међутим, пакети су именовани на хијерархијски начин. На пример, сви пакети који почињу са <code>java</code> део су [[Јава платформа-пакета]] {{Javadoc:SE|package=java.lang|java/lang}} који садржи основне класе језика, а {{Javadoc:SE|package=java.lang.reflect|java/lang/reflect}} садржи класе које се посебно односе на рефлексију.
 
 
У Јави (као и у [[Ади, Ц#, и]] другим језицима), именски простори / пакети изражавају семантичке категорије кода. На пример, у Ц#, <code>namespace System</code> садржи ко̂д који је обезбедио систем ([[. НЕТ фрејмворк)..]] Колико специфичне су ове категорије и колико дубоко иду хијерархије разликује се од језика до језика.
 
У Јави (као и у [[Ада|Ади]], Ц-{[[C#]]}-, и]] другим језицима), именски простори / пакети изражавају семантичке категорије кода. На пример, у Ц-{C#}-, <code>namespace System</code> садржи ко̂дкoд који је обезбедио систем ([[.NET НЕТFramework|.-{NET}- фрејмворк)..]]). Колико специфичне су ове категорије и колико дубоко иду хијерархије разликује се од језика до језика.
 
[[Функција]] и [[обим класа ]] може се посматрати као имплицитни именски простори који су нераскидиво повезани са видљивошћу, доступношћу и [[животним веком објекта.]]
 
 
 
== -{XML}- именски простор ==