Javaالدالة close()
الموجودة في الكلاس Scanner
في جافا
تعريفها
تغلق الكائن Scanner, أي تمنع إدخال أي بيانات جديدة في البرنامج عن طريق كائن الـ Scanner
.
من المهم جدا إغلاق كائن الـ Scanner
عند الإنتهاء منه حتى تضمن عدم حدوث أي مشكلة في حال إستخدمت كلاس أو إنترفيس آخر في البرنامج يستخدم بدوره الكلاس Scanner
.
بناؤها
public void close()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
لا ترجع قيمة.
في المثال التالي سيطلب البرنامج من المستخدم إدخال عمره و وظيفته, بعدها سيقوم بعرض المعلومات التي قام بإدخلها.
المثال الأول
import java.util.Scanner; // Scanner هنا قمنا باستدعاء الكلاس public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس String name; // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم String job; // سنستخدم هذا المتغير لحفظ إسم الوظيفة الذي سيدخله المستخدم System.out.print("Enter your name: "); // هنا طلبنا من المستخدم إدخال إسمه name = input.nextLine(); // name هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير System.out.print("Enter your job: "); // هنا طلبنا من المستخدم إدخال إسم الوظيفة job = input.nextLine(); // job هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم في لم يحدث أي خطأ أثناء إدخال البيانات System.out.println("\n----------- User Info ------------"); System.out.println("Name: " +name); System.out.println("Job: " +job); } }
سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.
Enter your job: Programmer
----------- User Info ------------
Name: Mhamad Harmush
Job: Programmer
المثال التالي هو نفس المثال السابق و لكننا قمنا بإغلاق كائن الـ Scanner
بعد إدخال الإسم, الأمر الذي سيؤدي إلى حدوث خطأ منطقي أثناء تشغيل البرنامج لأنه سيجد أنك حاولت إدخال بيانات في حين أنك قمت بإغلاق كائن الـ Scanner
الذي يسمح بإدخال البيانات.
المثال الثاني
import java.util.Scanner; // Scanner هنا قمنا باستدعاء الكلاس public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس String name; // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم String job; // سنستخدم هذا المتغير لحفظ إسم الوظيفة الذي سيدخله المستخدم System.out.print("Enter your name: "); // هنا طلبنا من المستخدم إدخال إسمه name = input.nextLine(); // name هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير input.close(); // Scanner هنا قمنا بإغلاق كائن الـ System.out.print("Enter your job: "); // هنا طلبنا من المستخدم إدخال إسم الوظيفة job = input.nextLine(); // job هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم في لم يحدث أي خطأ أثناء إدخال البيانات System.out.println("\n----------- User Info ------------"); System.out.println("Name: " +name); System.out.println("Job: " +job); } }
سيتوقف البرنامج و يظهر الخطأ التالي عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.
Exception in thread "main" java.lang.IllegalStateException: Scanner closed
Enter your job: