Именно пространство: Разлика между версии

Изтрито е съдържание Добавено е съдържание
Peterlambov (беседа | приноси)
Редакция без резюме
Ред 1:
 
[[Категория:Програмиране]]
== Именно пространство ==
Именното пространство представлява контейнер, съдържащ набор от идентификатори(имена), и осигурява пояснение на омонимните идентификатори, които се намират в различни именни пространства. Именните пространства обикновено обединяват имената, базирайки се на функционалността им.<br />
 
=== Система на именуване ===
Името в едно именно пространство се състои от именен идентификатор и локалнo име. Обикновено именното пространство се добавя към локалното име като представка.<br />
Line 80 ⟶ 79:
namespace Performance
{
 
class Program
{
Line 94 ⟶ 93:
}
 
 
</source>
 
Line 115 ⟶ 114:
#include <iostream>
using namespace std;
 
// first namespace
namespace first_space
Line 129 ⟶ 128:
class Example
{
public:
static void functionTwo()
{
Line 138 ⟶ 137:
int main ()
{
 
// Calls function from first namespace.
first_space::functionOne();
 
// Calls function from second namespace.
second_space::Example::functionTwo();
 
return 0;
}
Line 152 ⟶ 151:
В Java, идеята за именно пространство е пренесена в пакети(packages). Целият код представлява част от пакет, въпреки че изричното му посочване не е задължително. Достъпът до код от други пакети се осъществява чрез използването на името на пакета като представка пред съответния идентификатор, например класът String в пакета java.lang може да бъде достъпен като: java.lang.String([http://en.wikipedia.org/wiki/Fully_qualified_name тази конструкция представлява цялото име на даден клас]). Подобно на C++, Java предлага конструкция, която прави ненужно изписването името на пакета.
 
Въпреки това, определени функции( като [http://en.wikipedia.org/wiki/Reflection_(computer_science) отражението]) изискват от програмиста да използва пълната конструкция при извикването им. За разлика от C++, в Java именните пространства не са подредени йерархично по отношение на синтаксиса на езика. Въпреки това, именуването на пакетите е йерархично. Например, всички пакети започващи с java са част от платформата на езика - — пакетът java.lang съдържа основните класове в Java и пакетът java.lang.reflect съдържа основните класове се отнасят конкретно за [http://en.wikipedia.org/wiki/Reflection_(computer_science) отражението].<br />
 
В Java(както и Ada, C# и др.), именните пространства/пакетите изразяват семантични категории код. Например, в C# именното пространство System съдържа код, осигурен от .NET Framework. <br />
Line 164 ⟶ 163:
package animals;
 
interface Animal
{
public void eat();
Line 186 ⟶ 185:
{
System.out.println("Mammal travels");
}
 
public int noOfLegs()