खोज…
वाक्य - विन्यास
- Package_Name_To_Include के साथ;
- पैकेज New_Package_Name का नाम Package_To_Rename;
- Package_Name का उपयोग करें;
- पैकेज Parent_Name.Child_Name है
टिप्पणियों
पैकेज प्रदान करता है:
- कोड एनकैप्सुलेशन
- अलग संकलन
- निजी प्रकारों पर प्रक्रियाओं, कार्यों, ऑपरेटरों को छिपाएं
अन्य भाषाओं में समानताएं या समानताएं:
पैकेज पर अधिक
हैलो वर्ल्ड में , आपको Ada.Text_IO पैकेज से Ada.Text_IO , और अपने प्रोग्राम के भीतर I / O संचालन करने के लिए इसका उपयोग कैसे करें। कई अलग-अलग चीजों को करने के लिए पैकेजों में और हेरफेर किया जा सकता है।
नाम बदलना : पैकेज का नाम बदलने के लिए, आप पैकेज के घोषणा में कीवर्ड renames उपयोग करते हैं, जैसे:
package IO renames Ada.Text_IO;
अब, नए नाम के साथ, आप जैसे कार्यों के लिए एक ही बिंदीदार संकेतन का उपयोग कर सकते हैं Put_Line (यानी IO.Put_Line ), या तुम सिर्फ कर सकते हैं use के साथ यह use IO । बेशक, यह कहते हुए कि use IO या IO.Put_Line पैकेज Ada.Text_IO से कार्यों का उपयोग करेगा।
दृश्यता और अलगाव : हैलो वर्ल्ड उदाहरण में हमने क्लॉज़ के with Ada.Text_IO पैकेज का उपयोग with । लेकिन हमने यह भी घोषित किया कि हम उसी लाइन पर use Ada.Text_IO का use Ada.Text_IO करना चाहते थे। use Ada.Text_IO घोषणा का use Ada.Text_IO प्रक्रिया के घोषणात्मक भाग में ले जाया जा सकता है:
with Ada.Text_IO;
procedure hello_world is
use Ada.Text_IO;
begin
Put_Line ("Hello, world!");
end hello_world;
इस संस्करण में, प्रक्रिया, कार्य और प्रकार के Ada.Text_IO सीधे प्रक्रिया के अंदर उपलब्ध हैं। उस ब्लॉक के बाहर जिसमें Ada.Text_IO का उपयोग किया Ada.Text_IO है, हमें उदाहरण के लिए, डॉटेड नोटेशन का उपयोग करना होगा:
with Ada.Text_IO;
procedure hello_world is
begin
Ada.Text_IO.Put ("Hello, "); -- The Put function is not directly visible here
declare
use Ada.Text_IO;
begin
Put_Line ("world!"); -- But here Put_Line is, so no Ada.Text_IO. is needed
end;
end hello_world;
यह हमें उपयोग को अलग करने में सक्षम बनाता है ... घोषणाएं जहां वे आवश्यक हैं।
माता-पिता-बाल संबंध
एडीए कार्यक्रमों को उप-विभाजित करने के एक तरीके के रूप में, पैकेज में तथाकथित बच्चे हो सकते हैं। ये पैकेज भी हो सकते हैं। एक बच्चे के पैकेज में एक विशेष विशेषाधिकार है: यह मूल पैकेज के निजी हिस्से में घोषणाओं को देख सकता है। इस विशेष दृश्यता का एक विशिष्ट उपयोग ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग में व्युत्पन्न प्रकारों का पदानुक्रम बनाते समय होता है।
package Orders is
type Fruit is (Banana, Orange, Pear);
type Money is delta 0.01 digits 6;
type Bill is tagged private;
procedure Add
(Slip : in out Bill;
Kind : in Fruit;
Amount : in Natural);
function How_Much (Slip : Bill) return Money;
procedure Pay
(Ordered : in out Bill;
Giving : in Money);
private
type Bill is tagged record
-- ...
Sum : Money := 0.0;
end record;
end Orders;
कोई भी Ada इकाई जो कि with Orders; प्रकार की वस्तुओं की घोषणा कर सकते हैं Bill और फिर कॉल आपरेशन Add , How_Much , और Pay । यह है, तथापि, के घटक देखता Bill , और न ही की भी Orders.Bill के बाद से पूरा प्रकार परिभाषा के निजी भाग में छिपा हुआ है, Orders । पूर्ण परिभाषा छिपा हुआ रूप चाइल्ड पैकेज नहीं है, यद्यपि। यह दृश्यता जरूरत पड़ने पर टाइप एक्सटेंशन की सुविधा देती है। यदि Bill से प्राप्त बाल पैकेज में एक प्रकार घोषित किया जाता है, तो यह अंतर्निहित प्रकार Bill के घटकों में सीधे हेरफेर कर सकता है।
package Orders.From_Home is
type Address is new String (1 .. 120);
type Ordered_By_Phone is new Bill with private;
procedure Deliver
(Ordered : in out Ordered_By_Phone;
Place : in Address);
private
type Ordered_By_Phone is new Bill with
record
Delivered : Boolean := False;
To : Address;
end record;
end Orders.From_Home;
Orders.From_Home Orders का एक बच्चा पैकेज है। Ordered_By_Phone टाइप Bill से लिया गया है और इसमें रिकॉर्ड कंपोनेंट Sum ।