الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف التغلب على ال passing by refrence فى الجافا

بدأه The expendable في 14 أكتوبر 2010 · 5 رد · 440 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هل هناك passing by reference فى الجافا وهل هذا

مقتصر فقط على ال primitives زى ال Integers و floats

ولا على الكاثنات ايضا .. يعنى ينفع ابعت Object بby ref

وكيف اتغلب على هذا ؟؟؟ مع الامثله يا ريت

لأن عندى داله وعايز ارجع اكتر من قيمه ومش لاقى طريقه غير وضعهم فى اراى

ارجو التوضيح وشكرا مقدما..

تم تعديل هذه المشاركة بواسطة The expendable في 14 أكتوبر 2010 في 03:51

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#2

أولا أنا لم أفهم سؤالك أخي بالتحديد..

ثانيا: لا يوجد pass by ref في الجافا مطلقا!!! (قولا واحدا)

#3
هويدي كتب:

أولا أنا لم أفهم سؤالك أخي بالتحديد..

ثانيا: لا يوجد pass by ref في الجافا مطلقا!!! (قولا واحدا)

تم التعديل بشكل اوضح

تم تعديل هذه المشاركة بواسطة The expendable في 14 أكتوبر 2010 في 03:47

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

#4

كما قال الأخ هويدي: Java Always passing by Value

بالنسبة لارجاع قيمتين من الدالة فيمكن ارجاعها في مصفوفة ، أو تقوم بعمل كلاس تضع فيه تلك القيمتين وترجع كائن من الكلاس..

بالنسبة للخطأ الذي كان موجود في كودك البارحة، فهو لأنك استخدمت مصفوفة غير منشأة :

int minArr[] =null ;

مثال لارجاع اصغر قيمتين من الدالة:

import java.util.Arrays;

public class Get2Min {
	public static void main (String[] args) {
		int arr[] = {3,5,64,25,85,2,13};

		// first method
		int minArr[] = get2Min(arr);
		for (int number: minArr) {
			System.out.print(number + " ");
		}

		// second method
		Tuple<Integer, Integer> tuple = get2Min2(arr);
		System.out.println(tuple.first + " " + tuple.second);
	}

	// first method
	public static int[] get2Min (int[] arr) {
		Arrays.sort(arr);
		return new int[] { arr[0], arr[1] } ;
	}

	// second method
	public static Tuple<Integer,Integer> get2Min2 (int[] arr) {
		Arrays.sort(arr);
		Tuple<Integer,Integer> tuple = new Tuple<Integer,Integer>(arr[0], arr[1]);
		return tuple ;
	}
}

class Tuple<F,T> {
	public F first ;
	public T second ;

	public Tuple(F f,T t) { first = f; second = t; }
}

بالتوفيق،

1

http://informatic-ar.com منصة تعليمية عربية في علوم الحاسب والبرمجة

https://moalfat.com  للكتب الالكترونية والكورسات التعليمية

Everything we see now is just an engineering solution based on old science

#5

شكرا أخ وجدي ...

#6

شرح جيد ما شاء الله ..

مشكور لأنك لاحظت الكود قبل حذفه ..

والطريقتان واضحتان ولا تحتاجان الى استفسار .++

تم تعديل هذه المشاركة بواسطة The expendable في 14 أكتوبر 2010 في 19:54

no-pain-no-gain.jpg

اذا كنت لا تعلم الى اين تذهب... فكــل الطرق تؤدى الى هناك

مواضيع مشابهة