شما می توانید با ارسال ایمیل خود ، بصورت رایگان مشترک شده و از بروزسانی مطلع شوید.

ایمیل خود را وارد کنید:

اوراکل (ADF(Application Development Framework یک چارچوب(Framework)  کلی می باشد که برروی استانداردهای Java EE و تکنولوژی های Open Source جهت سادگی و پیاده سازی سریع تر برنامه های Java EE ایجاد شده است که کاملا توسعه پذیر و قابل تنظیم بوسیله افزودن یا اصلاح کتابخانه ها می باشد. ADF وظایف را از طریق ایجاد سرویس […]

CardLayout پنجره ای را در نظر بگیرید که شامل چندین پنل می باشد که در یک زمان فقط یکی از این پنل ها قابل مشاهده می باشد،با استفاده از کلاس java.awt.CardLayout شما می توانید کامپوننتی را ایجاد کنید که فقط یکی از این پنل ها را در یک زمان نمایش دهد، مانند شکل زیر: زمانی […]

اطلاعات سخت افزاری CPU اطلاعات CPU شامل جزئیاتی  مثل معماری ، نام سازنده ، مدل ، تعداد هسته ها ، سرعت هرکدام از هسته ها و غیره است. برای دسترسی به چنین جزئیاتی درباره سخت افزار CPU در لینوکس، تعداد بسیار اندکی کامند برای این منظور وجود دارد که ما در اینجا بطور مختصر تعدادی […]

حوزه های متغییر(Variable Scopes) + یک مثال

حوزه متغییر تعیین می کند که متغییر چه اندازه عمر خواهد کرد و قابل استفاده خواهد بود.اگر شما متغییری داخل متد تعریف کرده باشید،آن متغییر محلی است یعنی بمحض اینکه متد اجرای آنرا به پایان برساند از محدوده خارج می شود(غیرقابل استفاده می شود).

بعنوان مثال متغییرهای t, grossIncome, dependents و State در کلاس TestTax  مربوط به بخش های قبلی محلی هستند ولی اگر متغییرها خارج از محدوده تعریف شوند آنها متغییرهای کلاس بحساب می آیند و بوسیله ی هر متدی از این کلاس می توانند استفاده شوند.از طرف دیگر متغییرهای grossIncome, dependents و State در مثال بخش قبلی یعنی کلاس Tax با سازنده نیز متغییرهای نمونه هستند و داده نمونه خصوصی را ذخیره می کند.

شما میتوانید از کلاس Tax بیش از یک نمونه ایجاد کنید و هر نمونه می تواند مقادیر مختلف در متغیرهای نمونه آن را داشته باشد.

برای مثال کدهای زیر از کلاس Tax دو نمونه با مقادیر مختلف برای متغییرهای grossIncome, dependents و State ایجاد می کند(این متغییرهای نمونه در سازنده مقدار دهی اولیه شده اند).

Tax t1 = new Tax(50000, “NY”, ۳ );

Tax t2 = new Tax(65000, “TX”, ۴ );

کلمه کلیدی Static

جاوا یک کلمه کلیدی بنام Static دارد که نشان می دهد متغییر کلاس بوسیله تمام نمونه های همان کلاس به اشتراک گذاشته خواهد شد.اگر کلاس Tax تعریف static double grossIncome; را داشت سپس مقدار این متغیر توسط تمام شی های کلاس Tax به اشتراک گذاشته خواهد شد .گذشته از این بعداز ایجاد ۲ نمونه(t1,t2)،مانند کد قبلی، اولین مقدار متغییر(۵۰۰۰۰) با دومین مقدار(۶۵۰۰۰) دوباره نویسی خواهد شد.

اما اگر شما در کلاس Tax یک متغییر برای شمردن تعداد نمونه های خودش معرفی کنید(تعداد مشتری هایی که عوارض آنها محاسبه شده) چنین متغییری بایستی Static تعریف شده باشد،بنابراین تنها نوع خودش می تواند بوسیله هر نمونه افزایش داده شده باشد.مانند مثال زیر:

مثال  : کلاس Tax با کلمه کلیدی Static

class Tax {
 double grossIncome; // class member variables
 String state;
 int dependents;
 static int customerCounter;
 // Constructor
 Tax (double gi, String st, int depen){
 grossIncome = gi; // member variable initialization
 state = st;
 dependents=depen;
 customerCounter++; // increment the counter by one
 }
 }

شما نیز میتوانید متدهایی با Static تعریف کنید،چنین متدهایی بدون احتیاج به معرفی اول کلاس می تواند صدا زده شوند.این کار معمولا برای متدهایی که از هیچ یک از متغییرهای نمونه استفاده نمی کنند بکار می رود ولی ترجیحا ورودی را بوسیله آرگومانها می گیرند و نتیجه را برمی گردانند.متد زیر درجه حرارت فارنهایت را به سیلسیوس تبدیل می کند و نتیجه رابرمی گرداند:

class WeatherReport{
 static double convertToCelsius(double far){
 return ((far – ۳۲) * ۵ / ۹);
 }
 }

شما می توانید این مقدار را از دیگر کلاس ها  بدون احتیاج به معرفی WeatherReport در اول فراخوانی کنید.

double centigrees=WeatherReport.convertToCelsius(98.7);

مثال قدم به قدم

۱- در Eclipse IDE یک پروژه بنام Lesson 4 ایجاد کنید.

۲- یک کلاس بنام Tax ایجاد کنید و کد زیر را در آن  وارد نمایید.

class Tax {
	double grossIncome; // class member variables
	String state;
	int dependents;
	static int customerCounter;
	// Constructor
	Tax (double gi, String st, int depen){
	grossIncome = gi; // member variable initialization
	state = st;
	dependents=depen;
	customerCounter++; // increment the counter by one
	System.out.println("The customer #" + customerCounter);
	}
	
	public double calcTax()
	{
		return (grossIncome*0.33 - dependents*100);
	}
}

۳- متد Static را به کلاس Tax برای تبدیل tax(مالیات) محاسبه شده به یورو اضافه کنید و نرخ تبدیل ارز را ۱٫۲۵ اعمال کنید و مالیات(tax) محاسبه شده را در یورو با استفاده از متد ()System.out.Println چاپ کنید.

class Tax {
	double grossIncome; // class member variables
	String state;
	int dependents;
	static int customerCounter;
	// Constructor
	Tax (double gi, String st, int depen){
	grossIncome = gi; // member variable initialization
	state = st;
	dependents=depen;
	customerCounter++; // increment the counter by one
	System.out.println("The customer #" + customerCounter);
	}

	public double calcTax()
	{
		return (grossIncome*0.33 - dependents*100);
	}

	static void convertToEuros(double yourTax)
	{
		System.out.println("After convert to eoros: "+ yourTax * 1.25);
	}
}

۴- یک کلاس بنام TestTax ایجاد کنید و کد زیر را در آن وارد نمایید:

class TestTax{
	public static void main(String[] args){
	double grossIncome; // local variables
	String state;
	int dependents;
	grossIncome= 50000;
	dependents= 2;
	state= "NJ";
	Tax t = new Tax(grossIncome, state, dependents);
	double yourTax = t.calcTax(); //calculating tax
	// Printing the result
	System.out.println("Your tax is " + yourTax);
	Tax.convertToEuros(yourTax);

	Tax t2 = new Tax(65000, "TX", 4 );
	double hisTax = t2.calcTax();
	Tax.convertToEuros(hisTax);
	}
}

۵- کلاس TestTax را اجرا کنید(راست کلیک کرده و Run As> Java Application را انتخاب کنید).

کد پروژه Eclipse این مثال را می توانید از لینک زیر دانلود کنید.

دیدگاه خود را به ما بگویید.