ما هو الفرق بين متغير وثابت في جافا؟

هذه المقالة حول متغير وثابت في جافا هو دليل شامل للاختلافات بينهما ويناقش أيضًا سبب ثبات سلاسل جافا.

تعد Java واحدة من أشهرها يوفر مفاهيم مختلفة لإنشاء التطبيقات ، وأحد هذه المفاهيم هو متغير وثابت في Java. حسنًا ، يعتمد هذا المفهوم على إجراء تغييرات على الحقول بعد إنشاء الكائن وبالتالي يسهل البرمجة لـ . لذلك ، في هذه المقالة حول المتغير وغير القابل للتغيير في Java ، سأناقش الموضوعات التالية:

ما هو الكائن المتغير؟





تُعرف الكائنات التي يمكنك من خلالها تغيير الحقول والحالات بعد إنشاء الكائن باسم الكائنات القابلة للتغيير. مثال : java.util.Date و StringBuilder وما إلى ذلك.

ما هو الشيء الثابت؟



ال شاء حيث لا يمكنك تغيير أي شيء بمجرد إنشاء الكائن تُعرف باسم الكائنات غير القابلة للتغيير. مثال : الكائنات البدائية المعبأة مثل عدد صحيح وطويل وما إلى ذلك.

والآن بعد أن عرفت ما هو قابل للتغيير وغير قابل للتغيير في جافا ، دعنا نتقدم ونرى الاختلافات بين الاثنين.

هياكل البيانات والخوارزميات في جافا

الفرق بين الأشياء المتغيرة والثابتة



يمكنك الرجوع إلى الجدول التالي لمعرفة الاختلافات بين الكائنات القابلة للتغيير وغير القابلة للتغيير في Java.

متقلب غير قابل للتغيير
يمكن تغيير الحقول بعد إنشاء الكائنلا يمكن تغيير الحقول بعد إنشاء الكائن
بشكل عام يوفر طريقة لتعديل قيمة الحقلليس لديه أي طريقة لتعديل قيمة الحقل
لديه طرق Getter و Setterلديه طريقة Getter فقط
مثال: StringBuilder ، java.util.Dateمثال: سلسلة ، كائنات بدائية محاصرة مثل عدد صحيح وطويل وما إلى ذلك

الآن بعد أن عرفت الاختلافات بين الكائنات القابلة للتغيير وغير القابلة للتغيير ، دعونا ننظر في كيفية إنشاء هذه الطبقات.

كيف تصنع فئة متغيرة؟

لإنشاء فئة قابلة للتغيير في Java ، يجب عليك التأكد من تلبية المتطلبات التالية:

  1. قدم طريقة لتعديل قيم الحقل
  2. طريقة Getter و Setter

ضع في اعتبارك الكود التالي:

package edureka public class example {private String coursename example (String coursename) {this.coursename = coursename} public String getName () {return coursename} public void setName (String coursename) {this.coursename = coursename} public static void main (String [] args) {example obj = new example ('Machine Learning') System.out.println (obj.getName ()) // تحديث الاسم ، هذا الكائن قابل للتغيير obj.setName ('Machine Learning Masters') System. out.println (obj.getName ())}}

سترى الناتج التالي:

فرز الصفيف في c ++

إخراج كائن قابل للتغيير - متغير وثابت في Java- Edureka

الآن بعد أن عرفت كيفية إنشاء فئة قابلة للتغيير ، بعد ذلك في هذه المقالة ، دعنا ننظر في كيفية إنشاء فئة غير قابلة للتغيير.

كيفية إنشاء فئة غير قابلة للتغيير؟

لإنشاء فئة غير قابلة للتغيير في Java ، عليك التأكد من تلبية المتطلبات التالية:

  1. يجب التصريح عن فئة باسم نهائي بحيث لا يمكن تمديدها.
  2. يجب جعل جميع الحقول خاصة بحيث لا يُسمح بالوصول المباشر
  3. لا توجد طرق واضعة
  4. اجعل جميع الحقول القابلة للتغيير نهائية ، بحيث يمكن تخصيصها مرة واحدة فقط.
package edureka public class exampleimmutable {private final String coursename exampleimmutable (final String coursename) {this.coursename = coursename} public final String getName () {return coursename} public static void main (String [] args) {example obj = new example ( 'التعلم الآلي') System.out.println (obj.getName ())}}

سترى الناتج أدناه:

حسنًا ، بعد أن عرفت الآن عن الكائنات القابلة للتغيير وغير القابلة للتغيير ، دعني أخبرك أن السلاسل النصية غير قابلة للتغيير في Java. الآن ، أنا متأكد من أن هذا قد يثير سؤالًا حول سبب عدم إمكانية تغيير السلاسل في Java. لذا ، بعد ذلك في هذه المقالة ، دعونا نلقي نظرة على نفس الشيء.

لماذا السلاسل غير قابلة للتغيير في جافا؟

تستخدم Java مفاهيم . لذلك ، إذا كنت تفكر في مثال حيث لديك العديد من المتغيرات المرجعية التي تشير إلى كائن واحد ، فحتى لو غيّر متغير مرجعي واحد قيمة موضوع ، ستتأثر جميع المتغيرات المرجعية الأخرى تلقائيًا. أيضا ، وفقا ل جافا الفعال ،الفصل 4 ، الصفحة 73 ، الطبعة الثانية ، فيما يلي أسباب لاستخدام الفئات غير القابلة للتغيير:

  • الأشياء غير القابلة للتغيير بسيطة
  • هذه الكائنات لا تتطلب أي مزامنة وهي بطبيعتها آمنة لمؤشر الترابط
  • الكائنات غير القابلة للتغيير تشكل لبنات بناء جيدة للكائنات الأخرى

إذا كان علي أن أشرح لك بمثال ،

لنفترض أن لديك متغيرًا أخذ العينات ، الذي يخزن السلسلة ' التعلم الالي '. الآن ، إذا قمت بربط هذه السلسلة بسلسلة أخرى ' سادة ثم تم إنشاء الكائن لـ ' التعلم الالي ' لن تتغير. بدلاً من ذلك ، سيتم إنشاء كائن جديد لـ ' ماجستير تعلم الآلة '. الرجوع إلى الصورة أدناه:

c ++ فيبوناتشي العودية

كما ترى في الصورة أعلاه ، فإن ملف أخذ العينات يشير المتغير المرجعي إلى 'التعلم الآلي' ، وليس السلسلة الأخرى ، حتى بعد إنشاء كائنين. بهذا ننتهي من هذه المقالة حول متغير وثابت في جافا. آمل أن تكونوا واضحين يا رفاق بشأن كل جانب من الجوانب التي ناقشتها أعلاه.

الآن بعد أن فهمت أساسيات Java ، تحقق من ملف من Edureka ، وهي شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250000 متعلم راضٍ منتشرين في جميع أنحاء العالم. تم تصميم دورة تدريب وشهادة Java J2EE و SOA من Edureka للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطوري Java. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في مدونة 'متغير وثابت في جافا' وسنعاود الاتصال بك في أقرب وقت ممكن.