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

إنشاء Opject من كلاس معينة بإسم متغير

بدأه issam-ahmed في 26 ديسمبر 2012 · 3 رد · 727 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

إخواني الكرام ربما إسم الموضوع لم يحمل المعنى المراد منه بشكل واضح لكن سأحاول أوضح لكم هنا

أنا يوجد لدي كلاس إسمها Patient وهي عبارة عن Double linked list و كلاس إسمها Clinic وهي عباارة عن Double linked list

ال Patient تحتوي على متغير رقمي و متغيرين من نوع نص

public void Patient(long ID, String N, String Ad)

أما Clinic فتحتوي على Ooject من نوع Patient و متغير نصي و متغير رقمي

public void ListC (long Id,String Name, Patient p)

عند عمل insert للبيانات في Clinic نعمل كالتالي:-

Clinic clc = new Clinic();
clc.insert(1, "chest", pat);

حيث pat عبارة عن أو بجكت من Patient

Patient pat = new Patient();

السؤال هنا إخواني الكرام كيف يمكنني أنا أعمل أكثر من Opject من Patient بحيث إنه أعطيه في textfield مثلاً إسم الأوبجكت الجديد

لنفرض مثلاً حطيت إسمه PatS في textfield فيروح البرنامج ماخد الإسم ده وعامل أوبجكت بالإسم ده بشكل تلقائي

Patient PatS = new Patient();

و بدل ما يكون قيمة الأوبجكت ثابتة هنا

clc.insert(1, "chest", pat);

يكون بدل pat متغير بحيث أنا أضع فيه إسم الأوبجكت الذي أريده.

ممكن بطريقة أخرى أوجز ما شرحته كيف يكون إسم الأوبجكت إلي من نوع Patient متغير بحيث أتمكن من إنشاء عدة أوبجكت بالأسماء التي أريدها

عن طريق إضافة الأسماء بال TextField.

إن شاء الله يكون طلبي واضح و شكراً لكم

#2

الحقيقة مشكلتك بسيطه جدا ولها اكثر من حل !

ممكن مثلا تعرف ArrayList من نوع patients

وتضع فيها الاوبجكت ثم تدرجه ف clc

 
//define the list out event handling 
java.util.ArrayList<Patient> patientsList = new  java.util.ArrayList<Patient>();
//____________________________________________________________
{
Patient Pat = new Patient();

patientsList .add(pat);
clc.insert(,,pat);
}

وبكدا انت عملت أكثر من Opject من Patient واحتفظت بكل المرضى فى القائمة patientsList

ملحوظة: ليس مهما ان يكون اسم الاوبجكت هو نفسه اسم المريض الذى ادخله اليوزر ف ال textfield !

يكفى انك تعمل متغير اسمه name يحمل اسم المريض كـ String variable ف الكلاس Patient

بالتوفيق ,,

تم تعديل هذه المشاركة بواسطة Mogaahed في 29 ديسمبر 2012 في 01:20

#3
Mogaahed كتب:

الحقيقة مشكلتك بسيطه جدا ولها اكثر من حل !

ممكن مثلا تعرف ArrayList من نوع patients

وتضع فيها الاوبجكت ثم تدرجه ف clc

 
//define the list out event handling 
java.util.ArrayList<Patient> patientsList = new  java.util.ArrayList<Patient>();
//____________________________________________________________
{
Patient Pat = new Patient();

patientsList .add(pat);
clc.insert(,,pat);
}

وبكدا انت عملت أكثر من Opject من Patient واحتفظت بكل المرضى فى القائمة patientsList

ملحوظة: ليس مهما ان يكون اسم الاوبجكت هو نفسه اسم المريض الذى ادخله اليوزر ف ال textfield !

يكفى انك تعمل متغير اسمه name يحمل اسم المريض كـ String variable ف الكلاس Patient

بالتوفيق ,,

أخي شكراً لك و بارك الله فيك، لكن ربما لم يكون طلبي واضح..

أنا في طريقتي أضيف المرضى داخل أوبجكت ما من كلاس Double linked list ثم أضيف هذا الأوبجكت داخل Double linked list خاصة بالعيادة

و هو عبارة عن مشروع لمادة و تقريباً أصبح جاهز لدي لكن أريد أن أعمله بواجهة و بهذه الطريقة فأنا يجب أن أنشيء لكل عيادة أوبجكت من سلسلة المرضى

و أضيفه للعيادة ثم أضيف المرضى له و هذا يتطلب القدرة على إنشاء اوبجكت جديد لكل عيادة جديدة يتم إنشائها و من ثم إضافة المرضى

لسلسلة المرضى لكن أنا لا أستطيع أن أتعامل مع الأوبجكت إلى من نوع Patient كمتغير أو أقوم بإنشاء عدة أوبجكت لسلسلة المرضى من خلال الواجهات

يوجد أخ تفضل علي و حكالي إنه ممكن تضيف المرضى مباشرة لكل عيادة بدل عمل أوبجكت من سلسلة المرضى ثم إضافته للعيادة و إضافة المرضى له

لكن لم أفهم كيف أقوم بإضافة كل مريض بشكل منفصل لأي عيادة ما و شكراً لك

تم تعديل هذه المشاركة بواسطة issam-ahmed في 29 ديسمبر 2012 في 20:24

#4
اقتباس

أنا يوجد لدي كلاس إسمها Patient وهي عبارة عن Double linked list و كلاس إسمها Clinic وهي عباارة عن Double linked list

ال Patient تحتوي على متغير رقمي و متغيرين من نوع نص

 

يبدو اني لم افهم جيداً ماتقصد 

اما اذا كنت تقصد انك جعلت الPatient (class) عباره عن Double linked list اعذرني فهذا خطأ ليس في البرمجه ولكن Data structure لها قاعده معينه واذا كسرت تصبح عباره عن object

يفضل في بداية الامر ان تقوم بانشاء 2 classes الاول خاص بالعقدة يفضل كتباته باستخدام الgeneric type هكذا

 

class listNode<E>{

    E  data;
    listNode<E> next;
    listNode<E> prev; 

    listNode(E x){
        data=x;
        next=null;
    }//listNode()

  
}

 

حيث ان 

listNode<E> next;

 

تشير الى العقدة اللاحقه

و

listNode<E> prev;

 

 

 

تشير الى العقده السابقة

ام class الاخر قم بعمل method(الدوال) الخاصة بالعقده مثل الاضافه او الحذف .... الخ (بحسب ماترغب به انت)

الخطوة القادمة قم بعمل class الPatient والClinic بشكل منفصل وبداخله المعلومات اتي تريدها وعند اضافة اي مريض قم بعمل object من الclass ثم قم باضافة الobject الى خانة 

 

اقتباس
data

الخاصة بالعقدة 

في النهايه اسف على التطويل واي خدمة انا مستعد اخي 

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…