جاوا، قسمت دوم

14 01 2008

به قسمت دوم آموزش جاوا خوش اومدین. این بار در مورد مقادیر اولیه براتون می‌نویسم. البته با این تفکر جلو می‌ریم که برنامه‌نویسی رو بلدین و فقط با جاوا آشنا نیستین. اگه این طور نیست و برنامه نویسی بلد نیستین بهتره که برین یاد بگیرین! البته شاید یه مقدمه ای در آینده براتون نوشتم!

اول از همه در مورد مقادیر حقیقی بگم. مقادیری که اعداد اعشاری رو میزبانه. در جاوا استاندارد IEEE-754 (استاندارد عملیات حسابی اعداد ممیز شناور و باینری) و این متغیر ها رو float و double نام گذاری می کنن. هر کدومشون به ترتیب 32 و 64 بیت از حافظه رو می‌خورن (لفظ می خورن معادل قورت دادنه! یه جورایی کنار گذاشتن معنی می‌ده.) 4 نوع داده‌ی دیگه byte و short و int و long هستن که به ترتیب 8 و 16 و 32 و 64 بیت از حافظه کنار می‌ذارن. این 4 نوع همگی صحیح هستن و اعداد منفی رو هم شامل می‌شن. نوع بعدی boolean هستش که فقط مقادیر صحیح (true) و غلط (false) رو می‌پذیره. و نوع آخر هم char که هستش. در مورد char باید گفت که مثل زبان c وهم دست هاش فقط یک کاراکتر جا می‌شه اما نکته داره! اون کاراکتر یونی‌کُد و 16 بیتیه. لازم به ذکره که جاوا متغیری از نوع string نداره و اون رو به صورت کلاس پیاده سازی کرده (بعداً مفصل توضیح می‌دم).

شاید گفتن نحوه‌ی نام گذاری در جاوا هم لازم باشه، قواعد نام‌گذاری متغیر‌ها (بعداً خواهم گفت که بقیه‌ی نام گذاری ها هم مثل متغیر هاست!) در جاوا از قواعد زیر پیروی می‌کنه. البته نیازی به حفظ کردن قواعد نیست فقط کافیه وقتی که می‌خواین متغیر تعریف کنید، خودتون رو جای کامپایلر بیچاره بذارین و به نام متغیر نگاه کنید! مثلاً اگه 3 تا متغیر به نام های saar و blog و saar-blog تعریفکنید (که البته نمی‌شه) و یه جایی تو برنامه بنویسین saar=saar-blog+blog برنامه از کجا بفهمه که منظورتون از saar-blog متغیره یا تفریق دو متغیر! دیدین بیچاره حق داره؟!

  • نام می‌تونه با یک حرف یا خط زیر (همون آندرلاین خودمون«_») یا علامت دلار (همون دالرساین خودمون «$») شرو بشه.
  • نام ترکیبی از حروف و اعداد و خط زیر و علامت دلاره.
  • کلمات رزرو نمی‌تونن به عنوان نام متغیر باشن. (کلماتی که تو جاوا معنی خاصی می‌دن، کلمات رزرو شده ان.)
  • برای طول نام هم هیچ محدودیتی نیست.

لیست کلمات رزرو شده رو می‌تونید اینجا ببینید. البته یه سری مرام نامه‌ها (من از این کلمه‌ی «مرام‌نامه» خیلی خوشم میاد!) هم هست که برای این که مرام جاوایی داشته باشی باید رعایتشون کنی! مثلاً این که متغیر ها با حروف کوچیک شرو می‌شن یا اسم های ترکیبی باید شتری باشن! یعنی این که هر کلمه بعد از کلمه‌ی اول با حروف بزرگ شرو می‌شه مثلاً saarBlog. البته اگه این مرام نامه رو رعایت نکنید باز برنامتون اجرا می‌شه ها! فقط در این صورت مرام جاوایی ندارین!

اما اصل ماجرا! چطور یه متغیر تعریف کنیم؟! یه نکته بگم که متغیر توی کلاس ها تعریف می‌شه (بعدا بحث می‌کنیم). برای تعریف کافیه که اول نوع متغیر رو بگیم (همین ها که بالا گفتم) بعد اسمشون و اگر حال کردین! مقدارشون! مثلا من شونصدتا متغیر این پایین تعریف می‌کنم:

int anIntValue;
int firstInt, secondInt;
char aCharValue;
float floatNumber = 69.108;
double pi=3.14;
short short1= -10, short2=7;
boolean aBooleanValue, aFalseValue=false, aTrueValue=true;

می‌بینید چقدر آسونه؟! بذارین حرف‌هام رو کامل کنم. متغیر ها با کاما از هم جدا می‌شن وقت تعریف. برای مقدار دادن به متغیر های کاراکتری، کاراکتر ها رو بین علامت نقل قول تکی «’» (SingleQuote) قرار می‌دیم. و اما مقدار دادن به متغیر ها! کار سختی نیست! رایج ترینش استفاده از عملگر = یه که همتون بلدین، اگه بلد نیستین بگم که در برنامه نویسی متغیر ها رو باید فضایی ار حافظه در نظر گرفت. مثل یه کاسه! وقتی می‌خوایم مقداری رو به اون نسبت بدیم، اول اسم متغیر رو می‌نویسیم و بعد علامت مساوی و در آخر هم مقدار (که البته می‌تونه یک متغیر دیگه یا نتیجه‌ی یه عمل باشه!) باز شونصد تا مثال:

anIntValue=1367;
aCharValue='S';
floatNumber = 69.108;
pi=3.14;
short1= -10;
aBooleanValue=true;

و می‌رسیم به ثابت‌ها! آماده‌ی تعجب بشین! ثابت ها متغیر هایی هستن که در برنامه تغییر نمی‌کنن! نمونه‌ی بارز یک پارادوکس! همه چیز ثابت ها مثل متغیر هاست ولی با این تفاوت که اول تعریفشون واژه‌ی «final» میاد. البته بدیهیه که در متن برنامه نمی‌تونیم به ثابت ها مقدار بدیم (این با تعریف تضاد داره!!!) و فقد می‌تونیم وقت تعریف متغیر ثابت به اون ها مقدار بدیم. شاید بدرسیم به چه درد می‌خوره حالا! بعضی از اعداد هیچ وقت تغییر نمی‌کنن، مثل عدد پی یا e می‌تونیم این ها رو به عنوان ثابت در نظر بگیریم. من دو نمونه مثال بزنم

final float pi=3.142857; //3+1/7
final double e =2.718281828;

من تو مثال بالادوتا علامت // زدم و بعدش یه چیزی نوشتم، اون چیز! ی راهنماست و کار خاصی رو انجام نمی‌ده! برای اینه که اگه یه آدم (احتمالاً) برنامه رو دید بفهمه که من چکار کردم. یعنی مترجم (کامپایلر) اون را نادیده می‌گیره. من عدد پی رو از جمع 3 و 1/7 بدست آوردم.

تا اینجا بسه. جلسه بعدی بقیش رو می‌گم. البته به خاطر این بسه که منخسته شدم! اما یک سری نکته که دونستنش لازمه:

  • بعد از هر خط برنامه باید یه «;» بذارید البته دلیل داره و اون هم این که مترجم بفهمه که به پایان یک دستور رسیده. البته این شیوه رو تو زبون های دیگه مثل c و pascal و هم خانواده‌هاشون هم می‌بینید.
  • جاوا به بزرگ یا کوچیک بودن حروف حساسه. متغیر Ramin و ramin با هم تفاوت دارن.
  • جاوا نسبت به فاصله حساس نیست، به آخرین کد که نوشتم دقت کنید: برای pi مساوی رو از دو طرف چسبوندم به pi و 3.142857 ولی برای e این کار رو نکردم و البته تفاوتی هم ندارن. البته توی همه‌ی زبون ها اینطوریه (البته تقریباً)

خسته نباشید! تا جلسه‌ی بعد سعی کنید بیشتر بخونید! (و کلی از این زرد نوشته ها!)


کارها

اطلاعات

7 جواب

16 01 2008
Rohi

salam :D
khooooooooobi>?

18 01 2008
masy

سلام آقا رامین
وبلاگ جدید مبارک

موفق باشید

یا علی

18 01 2008
مهدی

سلام
ممنون از این که به من سرزدی .
جواب سئوال اولتون من کی باشم که مثل شهید بهشتی باشم.
جواب سئوال دوم اولا اگه می خواهید منو امتحان کنید هم اینجا بگم من چیز زیادی از کامپیوتر نمی دونم و چیزهای هم که مینویسم حاصل چیزها یی که در مدتی یاد گرفتم هست همانطور که تمام دوستان هم بعد از مدتی چیزهای حالا یا کم یا زیاد یاد می گیرند
حالا جواب سئوال شما میتوانید از یک راه ساده وبدون درسر استفاده کنید ولی برای استفاده از این ترفند یک پیش شرط وجود داره و اونم اینه که شما وقتی که ویندوز رو نصب می کنید
نباید در قسمت administrator کلمه ی عبور ثبت کنید اگر این کار رو کنید این ترفند به درد نمی خوره واگر کلمه ی عبور یا همان پسورد ثبت نکرده اید این کار رو انجام بدهید:
کلید های alt , ctrl , delete را با هم فشار دهید وبعد در قسمت user name کلمه ی administrator روتایپ کنید ولی قسمت پسورد رو خالی بگذارید وبعد اینتر بزنید تا وارد ویندوز شوید ولی اگه موفق نشده اید حتما موقع نصب ویندوز در قسمت administrator
رمز گذاشته اید.
یک راه دیگه هم نصب دوباره ویندوز هست.
بازم به من سر بزنید.
منتظرت هستم.

18 01 2008
مهدی

سلام همشهری
ممنونم که از من انتقاد کردی(البته انتقادی که قصد کوبیدن طرف باشه اصلا انتقاد نیست بلکه خراب کردن طرفه)بعد نیست یه سخن از یه بزرگ هم برات بگم:از مخالفت نهراسید
بادبادک هم برای بلند شدن باید به باد مخالف مواجه شود).
من که گفتم چیز زیادی از کامپیوتر نمی دونم ولی شما هم اشتباه داشتید (اولا شما باید می گفتید از چه سیستم عاملی استفاده می کنید نه من مثلا شما وقتی می روید پیش دکتر برای دل درد شما به دکتر میگید مشگل تون چیه یا خود دکتر به امر خدا می فهمه. البته می دونم فرق داره ولی تقریبا مثال خوبی بود.بعدش شما واقعا از روی نوشته ها نفهمیدید که من فقط درباره ویندوز می نویسم.
سوم: من تعجب می کنم که شما چرا سئوالی که در وبلاگ من بود باز هم نوشتید(با این که متن رو دیده اید.)
وچهارم :اینکه من تقریبا از روی نوشته ای شما فهمیدم که از سیستم عامل لینوکس استفاده می کنید و اول هم هر چند احترام زیادی نسبت به شما به عنوان یک بازدید کننده از وبلاگ دارم نمی خواستم جوابتون رو بدم (چون شما میدونستی که من فقط نوشته هام درباره xp هست ولی با این وجود شما باز هم این سئوالو پرسیدید.
پنجم :من بجز ویندوز علاقه ای به هیچ سیستم عامل دیگری ندارم(چون یه اماتور اماتورم) ولی از دعوت شما متشکرم.
در مرد سئوال اول شما من معذرت میخوام از شوخی که کردم وجواب سئوال اول هم منفی.
بازم حتما به من سر بزن هر چند فکر می کنم بازم بیایی زود زود.
منتظرت هستم.

19 01 2008
مهدی

سلام
باشه شاید بعد ها این کارو کردم(البته با لینوکس هم همچین غریبه نیستم بلاخره یه چیزهایی میدونم.)البته نیازی به کمک شما در مورد نصبش ندارم حالا شاید بعدا یه کمکی گرفتم(ولی اگه شما هم مبتدی نباشید و از نسخه ی Mandarke استفاده نکنید چون این نسخه مال
کاربران مبتدی هاستو کار باهش خیلی اسونه)
اگه خواستی کمک کنی برو نسخه red Hat رو خوب یاد بگیر بعد بیا به من هم یاد بده
شما الان دارید از نسخه ی GNU/Linux استفاده می کنید که برنامه نویسان تقریبا تمام جهان ایجاد کرده اند وفکر میکنم به درد شما نمی خوره وبه نظر حقیر شما باید بروید فعلا از Mandarke استفاده کنید که مال مبتد هاست تا …
راستی من از شما که به اصطلاع فکر می کنید برنامه نویسید؟؟؟؟؟؟؟؟؟؟؟ میخوام دو کد برام بنویسید
اولی که خیلی خیلی مبتدیان است این که در ویژوال یا هر نرم افزاری برنامه نویسی که دوست داشتید یه کد بنویسید که چهار عمل اطلی حساب رو برام انجام بده.
دوم اینکه یه کد بنویسید؟؟؟؟؟؟؟ اصلا ولش کن وقت مو تلف نمیکنم آخه وقت طلاست حالا اون اولی رو اگگگگگگگگگگگگگگه نوشتید بقیشو هم برات میگم.
در اخر هم من در مورد چیزی مینویسم که طرفدارش زیادتر باشه مثل ویندوز.
باز هم بیا ایییییییییییییییییییییییییییییییییییییی(ای) برنامه نویس.
منتظرت هستم.

20 01 2008
مهدی

سلام
اولا نیاز نبود که بگی که شما (خود شما )رو میگم خرم ابادی هستید چون از همون اول فهمیدم بچه خرم ابادی (در یکی از نظراتم هم نوشتم سلام همشهری) ولی مثل اینکه شما اصلا توجه نمی کنید.
دوم:در ضمن یک کلمه اشتباه نوشتن مهم نیست مهم این که مفهوم رو برسونه مثلا خود شما به جا ی توزیع چند بار نوشتید(توضیع ).
سوم: اصلانیاز به غید کردن نبود که بنویسم از چه زبونی برام کد بنویس من گفتم هر نرم افزار ی که دوست داشتی بنویس.
چهارم : به قول خوت بدیهی من هم این برنامه رو که گفتم بلد باشم.
در ضمن من تا حالا نظری رو به خدا پاک نکردم مگر به درخواست نویسنده یا اینکه بخواهم تغییری در وبلاگ انجام دهم.(مثلا یه بار همین عکس خودم رو در وبلاگ به صورت بزرگ گذاشتم ولی بعد پشیمان شدم و اونو با نظراتش حذف کردم.)
درضمن من زیاد کلاس داشتم تو مدرسه و دیگه مدرکم تو مدسه گرفتم وفکر نمی کنم دیگه پایین بیاد…. به دل نگیر اینو برا شوخی نوشتم.راستی من با کمال میل نظرات رو در وبلاگم تایید میکنم.وفعلا اگه خوب ویندوز رو فهمیدم به سراغ بقیه هم میرم .
ولی باور کن که میدونم میدونی انتقاد یه کم ….ولی واقعا لازمه.ولی لفظ بیان شما ؟؟؟؟؟؟؟ شما اگر هم به من می خواستید کمک کنید باید کم کم به من می گفتید نه در همون نظر اولت …..این تجربه هم برای دفعه ی بعد که مخاطب بعدیتو مثل من …… .من منتظر نظرات بعدی شما هستم.(انتقادات وپیشنهادات البته از نوع سازنده وارام ارام)
امیدوارم شما هم بلاخره با اضافه کردن یه سری امکانات به این هسته مثل امکانات گرافیکی یا هر چیز دیگری بتوانید یه توزیع جدید عرضه کنید.
منتظرت هستم.

28 01 2008
arashOio

ها؟ دعوا سر لحاف ملا نصرالدینه؟
اگه دنبال جوابی: اول ریبوت کن بعد تو حالت Recovery Mode بیا بالا و تویه کنسول بزن: passwd username و یک پسورد جدید به یوزرت بده… یا یه همچین چیزی بود فکر میکنم

دیدگاه‌تان را بنویسید: