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

parameterized classes

بدأه رحيق الورد في 17 نوفمبر 2010 · 8 رد · 735 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ماذا يعني عندما نقول

class parameterized متل array list ؟

#2

كمان ممكن اعرف شو وظيفه clone methode

وكمان hashcode method

في array list؟

#3
رحيق الورد كتب:

كمان ممكن اعرف شو وظيفه clone methode

وكمان hashcode method

في array list؟

بالنسبه ل clone method

هى احى دوال البارنت كلاس فى الجافا وهو Object class

ووظيفه هذه الداله انها تأخذ كوبى من الكلاس وهذه الكوبى تكون shallow copy وليست Deep copy ولن اركز على هذه الجزئيه كثيرا

الا اذا طلبت ..

وهذا مثال من الكتاب عليها :

 import java.util.*;

class Int {

	private int i;

	public Int(int a) {
    	i = a;
	}

	public void increase() {
    	i++;
	}

	public String toString() {
    	return Integer.toString(i);
	}
}

 class ClonemethodExample {

	public static void main(String[] args) {
    	ArrayList list = new ArrayList();

    	for (int i = 0; i < 5; i++) {
        	list.add(new Int(i));
    	}
    	System.out.println("List is : " + list);

    	ArrayList list1 = (ArrayList) list.clone();


//    	for (Iterator e = list1.iterator(); e.hasNext();) {
//        	((Int) e.next()).increase();
//    	}
    	System.out.println("List after cloning is: " + list);
	}
}

بالنسبه لل hashcode method فأنا لم اتعامل معها من قبل

اما ال Parametrized class

فالمقصود به على حد علمى generic class و هى ان الكلاس يأخذ بارامتر يعبر عن نوع الداتا التى يعمل عليها

حسب رغبه المستخدم للكلاس .. وهذا البارامتر يتم تعريفه عن طريق < Template <data type قبل الكلاس

مثال لو عندى مثلا كلاس لل stack ممكن مستخدم يضع فيه نوع integer واخر يضع فيه نوع float ربما يضع اخر object من اى نوع ..

ده على حد علمى ولو اى احد من الأخوه عنده اضافه فاليتفضل ..

تم تعديل هذه المشاركة بواسطة The expendable في 18 نوفمبر 2010 في 12:49

1

no-pain-no-gain.jpg

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

#4

بالنسبه للدوال التى بداخل الـ ArrayList

يمكن لحضرتك تشوفى هى بتعمل ايه

من خلال الرابط التالى

فى الـ Java Documentation

http://download.orac.../ArrayList.html

وكما قال اخى احمد ان الـ parameterized class

انها تأخذ نوع الـclass اثناء انشاء الكائن منها

وتعتبر Template فى هذه الحاله

ازاى استخدم الـ ArrayList كـ parameterized class

هذا ما يندرج تحت مسمى Generic programming

فيديو يتكلم عن ذلك ان اردتى

http://www.arabteam2...howtopic=226852

امثله ::

انى اجعل نوع الـ ArrayList من نوع String

مثال على ذلك

ArrayList<String> stringArrayList = new ArrayList<String>();

او من نوع JTextField

مثال على ذلك

ArrayList<JTextField> jTextFieldArrayList = new ArrayList<JTextField>();

او اى نوع اردتى

ودا مثال كامل على الـ parameterized class و الـ clone method

/**
 *
 * @author Mahmoud Kelany
 */
import java.util.ArrayList;

public class ArryListExample {

	public static void main(String[] args) {
    	ArrayList<Integer> list = new ArrayList<Integer>();
    	for (int i = 0; i < 5; i++) {
        	list.add(i);
    	}
    	System.out.println("List: " + list);

    	ArrayList<Integer> clone = (ArrayList<Integer>) list.clone();
    	System.out.println("Clone List: " + clone);
	}
}

تم تعديل هذه المشاركة بواسطة Mahmoud Kelany في 17 نوفمبر 2010 في 16:14

1

Software Developer
Mahmoudkelany.com


 

#5

يا شباب

في الموضوع الواحد جاوبوا على سؤال واحد

وهو الذي يتعلق بعنوان الموضوع

ساعدوني على أن نرقي فكر أعضاء الجافا

كلنا نريد مساعدتهم ولكنا أيضاً أن تبقى مساعدتنا لهم ينتفع بها الجميع

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#6

أشكركم جزيل الشكر أخواني , في المثال اللي أعطاه الأخ محمود يتكلم عن باراميتر واحد ومن نوع معروف وهو الذي يحدد نوع الكلاس, طيب بالنسبه للكلاسات اللي تأخذ أكثر من باراميتر؟ مثلاً تقول

 MyClass<T,E> myClass = new MyClass<T,E>();

ومثلاً الVector ممكن تعطيه باراميتر وممكن لا ويمشي طبيعي !!

مدري ليش ماقدرت استوعبها تماماً فكرة الباراميترات


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#7
M.Allaw كتب:

أشكركم جزيل الشكر أخواني , في المثال اللي أعطاه الأخ محمود يتكلم عن باراميتر واحد ومن نوع معروف وهو الذي يحدد نوع الكلاس, طيب بالنسبه للكلاسات اللي تأخذ أكثر من باراميتر؟ مثلاً تقول

 MyClass<T,E> myClass = new MyClass<T,E>();

ومثلاً الVector ممكن تعطيه باراميتر وممكن لا ويمشي طبيعي !!

مدري ليش ماقدرت استوعبها تماماً فكرة الباراميترات

الـ vector مش بياخد غير باراميتر واحد بس

Vector<Integer> is = new Vector<Integer>();

انما موضوع اكتر من براميتر

دا انت اللى بتعملها فى الكود بتاعك

ممكن تشوف الفيديو ؟؟ فى مشاركتى السابقه فى هذا الموضوع

مثال على كدا فالجافا

RowFilter<M,I>

الخاصه بترتيب الصفوف مثلا فى الـ JTable

ان امكن هاحاول اضع لك مثال باستخدام اكتر من برامتر

لقيت لك درس هنا فالمنتدى بيتكلم عن ذلك

العموميات في جافا Generics

1

Software Developer
Mahmoudkelany.com


 

#8

عندما وضعت المشاركه كان عادني ماشفت الفيديو blush.gif

بس الآن شفته وفهمت , بصراحه رووووووووووعه وانت اروع منه حبيبي happy.gif

أشكرك من داخل قلبي وان شاء الله نخدمك في يوم عرسك قول آمين :)


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

myHeartOutStream = MAllaw.getHeart().getOutputStream();
myHeart = new HeartOutputStream(myHeartOutStream);

while(myHeart.isStillBeating())
myHeart.write("I ♥ Java");

#9
M.Allaw كتب:

عندما وضعت المشاركه كان عادني ماشفت الفيديو blush.gif

بس الآن شفته وفهمت , بصراحه رووووووووووعه وانت اروع منه حبيبي happy.gif

أشكرك من داخل قلبي وان شاء الله نخدمك في يوم عرسك قول آمين :)

ولايهمك مفيش حاجه :)

الله يخليك يارب

الاروع هو صاحب الشرح :)

اللهم امين جميعا ان شاء الله :D

Software Developer
Mahmoudkelany.com


 

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