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

سؤال عن طريقة عمل أكثر من كلاس

بدأه استثنائيه في 12 مارس 2009 · 5 رد · 535 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أود فهم طريقة عمل الاوبجيكتز و عمل أكثر من كلاس

هذا مثال جاهز

{

	public static void main(String[] args)
	{
		Roman roman = new Roman();
	String s = "MXVI";
			  roman.setRoman(s);

		System.out.println("The equivalent of the Roman numeral "
						 + s + " is ");
		roman.printDecimal();
		System.out.println();
	}
}

public class Roman
{
	private String romanNum;
	private int decimalNum;

	public Roman()
	{
	   romanNum = "I";
	   decimalNum = 1;
	}

	public Roman(String rString)
	{
		romanNum = rString;
		  romanToDecimal();
	}

	public void printDecimal()
	{
		System.out.println(decimalNum);
	}

	public void printRoman()
	{
		 System.out.println(romanNum);
	}

	public void setRoman(String rString)
	{
		romanNum = rString;
		romanToDecimal();
	}

	public void romanToDecimal()
	{
		  int sum = 0;
		  int len =  romanNum.length();
		  int i;

		   int previous = 1000;

		  for (i = 0; i < len; i++)
		  {
			 switch (romanNum.charAt(i))
			 {
			 case 'M': sum = sum + 1000;
					  if (previous < 1000)
						  sum = sum -  2 * previous;
					  previous = 1000;
					  break;
			 case 'D': sum = sum + 500;
					  if (previous < 500)
						  sum = sum - 2 * previous;
					  previous = 500;
					  break;
			 case 'C': sum = sum + 100;
					  if (previous < 100)
						  sum = sum - 2 * previous;
					  previous = 100;
					  break;
			 case 'L': sum = sum + 50;
					  if (previous < 50)
						  sum = sum - 2 * previous;
					  previous = 50;
					  break;
			 case 'X': sum = sum + 10;
					  if (previous < 10)
						  sum = sum - 2 * previous;
					  previous = 10;
					  break;
			 case 'V': sum = sum + 5;
					  if (previous < 5)
						  sum = sum - 2 * previous;
					  previous = 5;
					  break;
			 case 'I': sum = sum + 1;
					  previous = 1;
			 }
		}

		decimalNum = sum;
	}
}

قمت بوضعه بالجي قراسب فظهرت رسالة خطأ تقول ان كلاس رومان يجب وضعه في ملف جديد بأسمه

و فتحت له ملف جديد

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

study

و الكلاس الثاني

أسميته Roman

لا أدري هل ماقمت به صحيح ؟

لأنه يظهر لدي خطأ

cannot find symbol

symbol : class Roman

location: class Study

Roman roman = new Roman();

ماذا أفعل الان ؟

تم تعديل هذه المشاركة بواسطة استثنائيه في 12 مارس 2009 في 18:07

#2

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

في أي ملف java، يسمح فقط ب public class واحدة، وهي التي يكون لديها نفس إسم الملف

لذلك يمكنك وضع الكلاس Roman والكلاس الأخرى في ملف واحد شريطة أن تزيلي public من أمام class Roman

#3

فعلت ماقلته و اشتغل الملف

لكن لو اردت إبقاء رومان public في ملف آخر كيف أربطها ؟ أم الطريقة خاطئة أصلا ؟

#4
اقتباس
لكن لو اردت إبقاء رومان public في ملف آخر كيف أربطها ؟ أم الطريقة خاطئة أصلا ؟

ممكن طبعا أن تضعي Roman في ملف مستقل، لكن يجب أن يكون إسم الملف "Roman.java"

ثم إذا كنت تستعملين package في الكلاس Study، فيجب أن تضعي Roman في نفس الpackage

ملاحظة: ممكن تضعي الكود كاملا لأن بداية الكلاس الأولى غير موجودة

#5

أشتغل الحمدلله !

شكرا جزيلا , جزاك الله خير أخ herch

#6

استثنائيه كتب:
أشتغل الحمدلله !

شكرا جزيلا , جزاك الله خير أخ herch

هذا واجب

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

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

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

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

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