تمرير معلمات الوظائف في جافا
تلخيص:
1. عند تمرير كائن (مرجع إلى كائن) كمعلمة ، يتم تمرير المرجع (يعادل مؤشر). بمعنى آخر ، ستؤثر التعديلات التي تم إجراؤها على المعلمات في الوظيفة على الكائن الأصلي.
2. عند تمرير نوع بدائي أو مجموعة تغليف من الأنواع البدائية كمعلمات ، يتم تمرير القيمة. بمعنى آخر ، لن تؤثر التعديلات التي تم إجراؤها على المعلمات في الوظيفة على المتغير الأصلي.
3. عند تمرير صفيف (مرجع صفيف)) كمعلمة ، يتم تمرير المرجع (يعادل المؤشر). بمعنى آخر ، ستؤثر التعديلات التي تم إجراؤها على المعلمات في الوظيفة على الصفيف الأصلي.
4. عندما يتم تمرير نوع السلسلة (المرجع) كمعلمة ، فهو مرجع. ومع ذلك ، عند إجراء أي تعديل للسلسلة ، سيتم إنشاء كائن سلسلة جديد ، ولن يتم تعديل قيمة كائن السلسلة الأصلي. (ومع ذلك ، يمكنك تعيين مرجع إلى الكائن الجديد إلى المرجع الأصلي. وهذا يمنح الناس الظاهرة السطحية التي تغير الكائن الأصلي ، لكنه لم يتغير ، لكن الإشارة الأصلية إليها قد أشار إلى الكائن الجديد).
حزمة سلسلة. الفئة A {int a = 1 ؛ char b = 'a' ؛ public a () {} public a (int _a ، char _b) {this.a = _a ؛ this.b = _b ؛ } السلسلة العامة toString () {return "a ="+this.a+"، b ="+this.b ؛ }} الفئة العامة المرجعية {public static a changea (a class) {class.a = 2 ؛ class.b = 'b' ؛ عودة فئة } changestring static static (String str) {system.out.println (str.hashCode ()) ؛ str = str.toLowerCase () ؛ System.out.println (str.hashCode ()) ؛ إرجاع شارع } int int static static (int a) {a = a+1 ؛ إرجاع أ ؛ } changeInteger ثابت ثابت (integer a) {a = new integer (9) ؛ إرجاع أ ؛ } static int [] changeIntArray (int a []) {a [0] = 10 ؛ إرجاع أ ؛ } printarray printarray static static (int a []) {for (int i = 0 ؛ i <a.length ؛ i ++) {system.out.print (a [i]+"") ؛ } system.out.println () ؛ } main static void main (string [] args) {// الكائن المخصص يمرر مرجع A = جديد A () ؛ A B = Changea (A) ؛ system.out.println (a) ؛ system.out.println (a) ؛ system.out.println (b) ؛ System.out.println("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- //The String object is also a reference as لا يمكن تغيير قيمة كائن السلسلة. System.out.println (STR1) ؛ System.out.println("---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- int int intb=changeint(inta); system.out.println (inta) ؛ system.out.println (intb) ؛ system.out.println (intb) ؛ System.out.println ("-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [] ArrayB = changeIntarray (Arraya) ؛ نتائج التشغيل:
أ = 2 ، ب = ب
أ = 2 ، ب = ب
-----------------------
711139030
711139030
226046678
226046678
هواهواهي
هوهوالانانج
-----------------------
8
9
-----------------------
1
9
-----------------------
10 1 2 3
10 1 2 3
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!