استدعاء العمليات على الكائنات

في Java وغيرها من لغات البرمجة كائنية التوجه، توجد الكائنات، وهي مجموعات من البيانات المرتبطة ببعضها والتي ترفق بمجموعة من العمليات. تعمل هذه العمليات على الكائنات، تجري الحسابات وأحياناً تعدل بيانات الكائن.
من بين الأنواع التي شاهدناها حتى الآن، كانت السلاسل المحرفية (Strings) هي الكائنات الوحيدة. اعتماداً على تعريف الكائن، قد تتساءل "ما هي البيانات الموجودة في الكائن من نوع String؟" و "ما هي العمليات التي يمكننا استدعاؤها على كائن String؟"
البيانات المحتواة في كائن String هي حروف السلسلة المحرفية، أو –بصورة عامة أكثر- محارفها. هناك عدة عمليات قليلة تعمل على السلاسل المحرفية، لكنني لن استخدم سوى بضعة عمليات منها فقط في هذا الكتاب. بقية العمليات موثقة على http://download.oracle.com/javase/6/...ng/String.html.
أول عملية سنتعرف عليها هي charAt، التي تسمح لك باستخراج الحروف من السلسلة المحرفية. ولتخزين النتيجة، نحتاج إلى نوع متغيرات يمكنه تخزين الحروف المفردة. الحروف المفردة تدعى المحارف (characters)، ونوع المتغيرات الذي يخزنهم يدعى char.
تعمل المتغيرات من نوع char مثل بقية المتغيرات التي تعاملنا معها سابقاً:
كود:
char fred = ’c’;
if (fred == ’c’) {
  System.out.println (fred);
}
تظهر قيم المحارف بين علامتي تنصيص مفردة ('c'). بعكس القيم من نوع string (التي تظهر بين علامتي تنصيص مزدوجة)، القيم المحرفية يمكن أن تحتوي على حرف واحد فقط أو رمز.
هنا شرح طريقة استعمال عملية charAt:
كود:
String fruit = "banana";
char letter = fruit.charAt(1);
System.out.println (letter);
تشير التركيبة fruit.charAt إلى أنني أستدعي العملية charAt على الكائن fruit. مررت المتحول 1 إلى هذه العملية، ما يشير إلى أنني أود معرفة المحرف الأول من السلسلة. النتيجة هي قيمة من نوع char، يتم تخزينها في المتغير letter. عندما أطبع قيمة المتغير letter، أحصل على مفاجأة:
a
a ليس الحرف الأول من كلمة "banana". إلا إذا كنت عالماً بالكمبيوتر. تطبيقاً لمبدأ "خالف تعرف"، يبدأ علماء الكمبيوتر العد من الصفر دائماً. الحرف الصفري (0th - "zeroeth letter") من كلمة "banana" هو b. أما الحرف الأول (1th - "oneth") هو a والحرف الثاني (2th - "twooth") هو n.
إذا أردت الحرف رقم 0 من سلسلة، عليك تمرير الصفر كمتحول:
كود:
char letter = fruit.charAt(0);