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

نقاشات في الجافا

بدأه ZmZ في 29 أكتوبر 2008 · 15 رد · 1,434 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

بعد اذن اخواني مشرفين هالقسم

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

قررت اني احط هالموضوع لهالغرض , والي من شأنه أن شاء الله اضافة بعض التفاعل

واتمنى انه يكون مكان تواصل حتى لو تكتب تحية فقط

راح ابدأ بسؤال:

كيف تنشىء Class وتجعل المستخدم لا يستطيع انشاء Objects منها؟

تم تعديل هذه المشاركة بواسطة ZmZ في 29 أكتوبر 2008 في 11:08

#2

اجعلها abstract class كالتالي :

  1.  
  2. public abstract class A {
  3. ..........
  4. }
  5.  

بهذه الطريقة ستتأكد من أنه لا يمكن إنشاء كائن من هذا الصنف ، وإذا أردت استخدامها لابد من اشتقاقها أوًلا ثم استخدام الكائن المشتق

سبحان الله وبحمده ... سبحان الله العظيم

#3

جميل أخي أحمد

لكني لا أريد ان اجعل ال Class من نوع abstract اريد Class من نوع عادي.

وشاكر لك مرورك وأجابتك على السؤال.

تم تعديل هذه المشاركة بواسطة ZmZ في 29 أكتوبر 2008 في 14:01

#4

مافهمت سؤالك أخي العزيز

كيف ماتنشئ أوبجكت منها؟

قصدك ماتقدر تطلع على الأوبجتس اللي فيه؟ إذا كان كذا فخليه بدل public خليه private


HeartOutputStream myHeart;
OutputStream myHeartOutStream;

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

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

#5

يجب أن يكون عضو member في فئة أخرى

وبعد ذلك غير الصلاحية modifier الخاصة به إلى private

تحياتي

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

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

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

728x90.png

#6

ضع داله البناء في الجزء private ، وبالتالي لن تستطيع عمل كائن من الكلاس لأنك لن تصل لداله البناء .

بالتوفيق ،

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

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

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

#7

أعتذر في الحقيقة على تأخري في الرد

وأعتذر كذلك ان لم يكن السؤال واضح

Wajdy Essam كتب:

ضع داله البناء في الجزء private ، وبالتالي لن تستطيع عمل كائن من الكلاس لأنك لن تصل لداله البناء .

بالتوفيق ،

بالضبط هذا ما أردته

واذا كان ال constructor من نوع private فإنك لا تستطيع انشاء كائنات منه

طيب اذا كان كذلك , هل هناك طريقة بحيث تنشىء كائنات من هذا class بالرغم من انه ليس لديه سوى private constructor?

تم تعديل هذه المشاركة بواسطة ZmZ في 1 نوفمبر 2008 في 11:47

#8

دالة public تمكنك من إنشاء كائن بمواصفاتك أنت

وترجع كائن من هذه الفئة

تحياتي

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

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

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

728x90.png

#9
alaadiaa كتب:
دالة public تمكنك من إنشاء كائن بمواصفاتك أنت

وترجع كائن من هذه الفئة

تحياتي

سأوضح أكثر

لدينا هذا ال class

public class PrivateConstructor {

	   private int prob;


	   // setter / getter
	   public int getProb() {
		   return prob;
	   }

	   public void setProb(int prob) {
		   this.prob = prob;
	   }

	   // private constructor
	   private PrivateConstructor(int prob)
	   {
		   this.prob = prob;
	   }
   }

بدون أن تضيف أي constructor آخر للدالة اريدك ان تنشىء Objects منها؟

#10

أنت تستطيع أن تتستعمل صانع الكائنات داخل الفئة

حتى لو كان private

تحياتي

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

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

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

728x90.png

#11

زي ما قال علاء ،

اقتباس
دالة public تمكنك من إنشاء كائن بمواصفاتك أنت

وترجع كائن من هذه الفئة

وين المشكله هنا ؟

داله Public كمان static ترجع كائن جديد من الكلاس ..

public static MyObject getInstance() { return new MyObject(); }
// in main
MyObject = MyObject.getInstance();

بالتوفيق ،،

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

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

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

#12
Wajdy Essam كتب:

زي ما قال علاء ،

وين المشكله هنا ؟

داله Public كمان static ترجع كائن جديد من الكلاس ..

public static MyObject getInstance() { return new MyObject(); }
  // in main
  MyObject = MyObject.getInstance();

بالتوفيق ،،

آسف لم انتبه لمقصده.

شاكر لك اخي علاء وأخي وجدي تفاعلكم معي

تم تعديل هذه المشاركة بواسطة ZmZ في 2 نوفمبر 2008 في 12:06

#13

في البداية كنت اقرأ في ال Enums والاضافات الجديدة فيها

ووجدت هذا المثال , ومن ضمنه كانت الأسئلة

ولا زلت احتاج لتحيل بعض ما فيه

  1. import java.util.*;
  2.  
  3. public class Card {
  4. public enum Rank { DEUCE, THREE, FOUR, FIVE, SIX,
  5. SEVEN, EIGHT, NINE, TEN, JACK, QUEEN, KING, ACE }
  6.  
  7. public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES }
  8.  
  9. private final Rank rank;
  10. private final Suit suit;
  11. private Card(Rank rank, Suit suit) {
  12. this.rank = rank;
  13. this.suit = suit;
  14. }
  15.  
  16. public Rank rank() { return rank; }
  17. public Suit suit() { return suit; }
  18. public String toString() { return rank + " of " + suit; }
  19.  
  20. // لمذا استخدم مؤشر من نوع List ?
  21. private static final List<Card> protoDeck = new ArrayList<Card>();
  22.  
  23. // Initialize prototype deck
  24. static {
  25. for (Suit suit : Suit.values())
  26. for (Rank rank : Rank.values())
  27. protoDeck.add(new Card(rank, suit));
  28. }
  29.  
  30. public static ArrayList<Card> newDeck() {
  31. return new ArrayList<Card>(protoDeck); // Return copy of prototype deck
  32. }
  33. }
  34.  

  1.  
  2. import java.util.*;
  3.  
  4. public class Deal {
  5. public static void main(String args[]) {
  6. int numHands = Integer.parseInt(args[0]);
  7. int cardsPerHand = Integer.parseInt(args[1]);
  8. // Every time you create a List by this line you will get a new ArrayList
  9. // referencing the same elements, is it?
  10. List<Card> deck = Card.newDeck();
  11. Collections.shuffle(deck);
  12. for (int i=0; i < numHands; i++)
  13. System.out.println(deal(deck, cardsPerHand));
  14. }
  15.  
  16. public static ArrayList<Card> deal(List<Card> deck, int n) {
  17. int deckSize = deck.size();
  18. List<Card> handView = deck.subList(deckSize-n, deckSize);
  19. ArrayList<Card> hand = new ArrayList<Card>(handView);
  20. handView.clear();
  21. return hand;
  22. }
  23.  

result

$ java Deal 4 5
				 [FOUR of HEARTS, NINE of DIAMONDS, QUEEN of SPADES, ACE of SPADES, NINE of SPADES]
				 [DEUCE of HEARTS, EIGHT of SPADES, JACK of DIAMONDS, TEN of CLUBS, SEVEN of SPADES]
				 [FIVE of HEARTS, FOUR of DIAMONDS, SIX of DIAMONDS, NINE of CLUBS, JACK of CLUBS]
				 [SEVEN of HEARTS, SIX of CLUBS, DEUCE of DIAMONDS, THREE of SPADES, EIGHT of CLUBS]

انتظر ردودكم

#14

ابي اسال عن الJOptionPane

كيف يمكن الكتابه بالعربي داخله وداخل ال frame

مثل JOptionPane("ادخل رمز المرور")

وان تكون المخرجات بالعربي

فياليت تفودوني في ذلك

#15

عادي JOptionPane تقبل العربي

تحياتي

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

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

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

728x90.png

#16

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

يعني ماتخرج المخرجات عربي

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