PDA

View Full Version : ما شروع به کار کردیم



javacaran
پنج شنبه 22 بهمن 1383, 21:45 عصر
به نام خداوند عالم و دانش دوست
ما یک گروه هستیم و شروع به کار در مورد جاوا کردیم .هر هفته پیشرفتهای خود را می نویسیم . شما هم می توانید با ما باشید . email بزنید .
از کسانی که در این راه خبره تر هستن دعوت ودرخواست همکاری راداریم:flower: (ایمیل بزنید)
جلسه اول ما در روز چهار شنبه است پس در 5 شنبه منتظر خبر ما باشید
راستی ما برای سادگی در ادیتور jbuilder کار میکنیم ودر ابتدا با کلاش بندی وشیگرایی وزیان جاوا کار داریم وبعد به سراغ محیط ویرژوال آن میرویم.

باتشکر . javacaran@gmail.com

javacaran
جمعه 30 بهمن 1383, 03:29 صبح
با یک روز دیر کرد به دلیل در دسترس نبودن enternet
جلسه ی اول : برگرفته شده از کتاب جاوا ی آقای جعفر نژاد قمی
مطالب ارائه شده در این هفته:
1. قابلیت های جاوا
2. معایب جاوا
3. انواع داده در جاوا
4. قواعد نامگذاری در جاوا
5. اعلان متغییرها
6. ثوابت
7. عمگرها
8. تقدم عملگرها
9. اجزای تشکبل دهنده جاوا
10. شروع به کار در جاوا با یک برنامه ساده
11. چاپ بر روی صفحه نمایش
قابلیت های جاوا :
قابلیت حمل برنامه های جاوا در بین تمام سیستمهای عامل یک خاصیت بسیار مهم برای جاوا است .
این خاصیت به دلیل تبدیل برنامه به یک زبان واسطه معروف به بایکد است میباشد.که این کد در سیستم مورد نظر با توجه به امکانات آن سیستم وسیستم عامل آن به زبان صفر ویک قابل فهم آن سیستم تبدیل میگردد. این قابلیت باعث کاهش هزینه ها میشود برای مثال شما برای نوستن برنامه ای برای سسیستم عامل ویندوز دیگر لازم نیست آن را خریداری کنید 399$ یا در این حدود پول بدهبد با یک سیستم عامل لینوکس کار حل است علاوه بر این شما دیگر وقت صرف یادگیری سیستم عامل دیگر یا ادیتور در آن سیستم عامل نمی کنید.
قابلیت استفاده در اینترنت : این قابلیت با استفاده از اپلتها به دست می آید و همچنین با استفاده از زبان jsp و سرولت های زبان جاوا نیز می توان برای این شبکه عظیم برنامه های مناسبی نوشت البته زیان های دیگر نیز این خاصیت را دارند .(در هفته های آینده به این موضوع هاخواهیم رسید من هم منتظرم.)
شی گرا بودن :البته وصد البته این خاصیت دیگر از مد افتاده ودیگر همه ی برنامه ها شی گرا هستند اما باید دانست که فقط تنها برنامه هایی که به این ادعای بزرگ رسیده اند فعلا جاوا وسی شارپ هستند .اما بحث ما جاوا است در جاوا شروع برنامه با کلمه class است که دوستان میدانند این کلمه سمبل شی گرایی است. درجاوا تماما با کلاسها وپکیجها کار میکنید و از متد های behavior درون آنها وداده های attribute آنها استفاده میکنید در این مورد ما آنقدر کار خواهیم کرد که دیگر از شی وشی گرایی خسته شویم.
زبان جاوا به دلیل داشتن کد میانجی بایکد کمی کند تر نسبت به دیگر برنامه ها عمل میکند که این نیز راه دارد و متوان با استفاده از کامپایلر های just in time آن را مستقیم به کد تبدیل کنیم.
در سیستم هایی که بخواهیم یک زبان جاوا را به کار گریم باید در آن مفسر که بایکد را به کد تبدیل میکند داسته باشیم.
انواع داده در زبان جاوا:
در این زبان ما دارای چهار مدل داده اصلی هستیم که عبارتند از:
1. صحیح byte, short , int ,long
2. اعشاری float , double
3. کاراکتر char
4. منطقی Boolean
Byte 128- 127 یک بایت
short 32768- 32767 دو بایت
int 2147483648- 2147483647 چهار بایت
long 9223372036854775808- 9223372036854775808 هشت بایت
داده اعشاری float دارای 4 بایت حافظه است و double هشت بایت فضا می گیرد.
داده کاراکتری از نوع یونیکد است و به ازای هر کرام 2 بایت فضا میگیرد مانند 'a'یا'ش' یا '1'
نکته : 1 با '1' تفاوت دارد.حتی در کاراکتر ها 1 فارسی با 1انگلیسی تفاوت دارد .
منطقی نیز دارای دو مقدار true و false است.
نکته درگوشی : احتمال میدهم که اشارهگر ها نیز دز جاوا 4 بایت فضا میگیرد.
تمرین1 : تحقیق کنید در زبان جاوا اگر داده ای از نوع بایت باشد و ما در آن عدد 125 را داشته باشیم با اضافه کردن عدد 10 به چه عددی خواهیم رسید یا اصلا خطا ایجاد شده کار نیمه تمام میماند.!!
جواب تمرین ها در نویسه ی هفته بعد خواهد آمد.
قواعد نام گذاری درجاوا:
یکی از خطاهای معمول در جاوا به یک دلیل است که از قواعد نام گذاری درست استفاده نمی کنیم
زیرا این زبان حساس به حروف بزرگ وکوچک است و با جا به جا زدن آنها بزرگ یا کوچک به داده ی خود یا متد یا کلاس یا پکیج خود نخواهیم رسید.
چه کنیم: اولا در جاوا هر نام میتواند با حروف الفبا و$ و _ شروع شود و در ادامه می توان از اعداد نیز استفاده کرد در قواعد معمول نیز نام هر کلاس با حروف بزرگ آغاز شده و درصورت استفاده از کلمه جدید در نام آن نیز با حرف بزرگ آغز می شود . مانندFordCar که میتواند یک نام خوب برای ماشیهای یک کمپانی باشد.متغییر ها و توابع نیز با حروف کوچک نوشته شده ودر صورت استفاده چند کلمه برای یک متغییر باید کلمه ی دوم با حرف بزرگ نوشته شود. مانند carNice یا carRate() که اولی یک متغییر ودومی یک تابع است .
اعلان متغییر ها :
در جاوا متغییر ها همانند++c اعلان می شوند ; [public|private] type name [=default]
;پیش فرض = نام متغییر نوع متغییر حوضه متغییر
مانند public char name='1';
Public و private حوزه عمل برای یک متغییر است اولی باعث می شود که آن متغییر در کل کلاس های ما قابل دسترسی باشد و دومی باعث می شود که متغییر تنها در خود کلاس در دسترس باشد
مقدار دهی به متغییر ها در جاوا:
دیگر تکرار نمیکنیم در جلوی هر دستور باید از ; استفاده شود این یکی تز خطا های معمول برای تازه کارها است.
برای این کار نام متغییر را آورده ودر جلوی آن از مقدار متناسب با آن استفاده می کنیم مثال:
;'Name ='J
ثوابت در جاوا:
ثوابت متغییر است که از تغییر آن در برنامه جلوگیری میشود برای مثال شما می دانید که عدد پی برابر با3.141592 است و این عد در برنامه نیازی یه تغییر نداشته و ثابت است.
برای تعریف آنها از کلمه کلیدی final قبل از نوع آن استفاده میکنیم .برای مثال :
;final double pi = 3.141592
تلاش در تغییر تابت ها موجب خطا می شود.
عملگرها :
در جاوا دارای چندین عملگر هستیم محاسباتی ورابطه ای و منطقی و بیتی وعملگر ترکیبی و عملگرسه گانه ی ?:
محاسباتی : از جمله * / - + % که مشخص و ++ و -- میباشد البته / به شما اگر دو طرف از نوع صحیح بودن جزء صحیح آن را میدهد و آخری نیز همانند mod عمل میکند یعنی باقیمانده دو عدد در تقسیم را به دست میدهد .اما ++ چیست این عملگر یکی از پر کاربردیترین عملگرها است و به معنی اضافه شدن عملوند به مقدار 1 واحد است . – نیز یکی از عملوند کم میکند
برای مثال اگر x=10 باشد و x++ را اجرا کنیم x برابر با 11 میشود و اگر دوباره x—را اجرا کنیم x برابر با 10 میشود این عملگر ها دارای دو مدل هستند یکی پیشوندی یعنی بعد از عملوند خود می آید(x++) ودیگری پسوندی یعنی بعد از عملوند خود می آید(++x) که دارای یک تفوت می باشند

خط دستوری برابر است با دستوری که مابین دو ; از دستور قبلی و ; از همین دستور قرار دارد.
اگر از نوع پیشوندی استفاده کنیم در همان خط برای محاسبه از خود x استفاده می شود و در خط های دسگر به x یک واحد اضفه شده است اما در نوع پسوندی در آن خط دستور نیز از x که یک وا حد به آن اضافه شده است استفاده میکنیم
حال اگر x=10 باشد y=x++; را اگر اجرا کنیم داریم xبرابر با 11 و y برتبر 10 است حال اگر به جای این دستور از دستور y=++x; استفاده میکردیم x ط برابر با 11 می شد وy برابر با 11 . این برای – نیز درست است
تمرین 2 : اگر x از نوع byte باشد و برابر با 126 بعد ازتقدم عملگر ها حل شود
حال برنامه ای را با خط های زیر اجرا شود برای هر خط y و x را مشخص کنید.(لظفا از مخ استفاده کنید به جای کامپیوتر )
y=x++
(y=y+++++x)—
--y=x++
رابطه ای : < و > و = و== و =< و=> و =! که روشن هستند سومی از راست عمگر نتساب است وبرای مقدار گزاری در یک متغییر به کار می رود که در بالا به آن تا حدودی اشاره شد اما == عملگر مقایسه ای است مثلا x==y یعنی x برابر با yاستtrue یا نهfalse و x=y یعنی مقدار yدر x ریخته شد آخری نیز یه معنی این است که اگر دو طرف با هم مساوی نبودن مقدار true و اگر مساوی بودن مقدار false را برمیگرداند تمامی این عملگر ها مقدار برگشتی boolean را برمی گردانند .
عملگر های منطقی: ! و && و || این عملگر ها مقدار های دو طرف آنها باید از نوع Boolean باشد و مقدارهای برگشتی آنها نیز همین طور Boolean است عملگر !فقط یک مقدار در جلوی آن می آید و آن را اگر true باشد به false تبدیل میکند و بر عکس. و عملگرهای && و || به ترتیب عملگرهای and و or هستند .برای مثال داریم
یک عملگر انتساب boolean ans =true;
boolean ans2 = false;
int x = 10 //f
int y= 12; // d
در اینجا چون x برابربا yتیست مقدار که به ansانتساب داده میشود برابر با false است ans = x==y;
ans2 = ans || (!(x==y)); //h
درخط آخر nas2برابر با نتیجه ی روبروی آن میبا شد که از یا ی منطقی بین ans و !(x==y) است ans از قیل برابر با false شد و x==y بربر با false است پس!(x==y) برابر با true و نتیجه کل برابر با true است.
عملگر های بیتی عبارت اند از ^ و & و | که همان xor و and و or که بر روی بیت های دو متغییر عمل میکنند برای مثال اگر بیت 1 با بیت 0 or شود بیت 1 را برمیگرداند و در xor اگرهر دو بیت برابر با 1 یا 0 باشند مقدار 0 و اگر یکی از بیت ها برابر 1 و دسگری برابر 0 باسد مقدار 1 را بر می گرداند حال اگر برای مثال متغییر از نوع byte باشد اگر اولی 14یا 1110 در مبنای دو باشد و دومی برابر با 11 یا 1011 در مبنای دو باشد از | داریم 1111 یا همان 15 و از & داریم 1010 یا همان 10 و از ^ یا همان xor داریم 0101 یا همان 5 است .
تمرین3 : اگر اعداد ما منفی بودن چه میشد یا به عبارتی جواب 14- ^ 25- چه می شود ؟
عملگر های ترکیبی :
تین عملگر ها عبارت اند از =+ و =- و=/ و =* و =% که دارای دو عملوند هستند با یک مثال بسیار ساده میتوان آن را گفت x+=y برابر است با x=x+y که کاربرد های زیادی دارد این را برای دیگر عملگر ها ترکیبی نیز میتوان توسعه داد
عملگر ?:
این عملگر دارای سه عملوند است یک عبارت بولی و دو دستور .;دستور 2:دستور 1?عبارت بولی
اگر عبارت بولی true بود دستور 1 اجرا میشود و اگر false بود دستور 2 اجرا میشود .
تقدم عملگر ها :
در اجرای یک عبارت محاسباتی چه از نوع عددی چه از نوع منطقی (بولی) شاید چندین عمل انجام می شود که بایستی دانست که کدام زودتر انجام می شود و تر تیب آن ها را دانست تا به نتیجه مورد نظر رسیدمثلا 2*14/2+1 آیا اول 1+2 میشود و بعد / و انگاه *که نتیجه شود 8 اگر اول * بعد / و بعد + عمل کند جواب میشود 15 که شاید با چنین اختلافی در محاسبه در یک نیروگاه اتمی انفجار اتمی ایجاد شود (چه شود)
قوانین :
1. عملگرهای داری تقدم یکسان عملگرها از چپ به راست تقدم بالاتری دارد.
2. تقدم عملگرها در زیر آورده شده
()
++ -- !
* / %
+ -
< > <= >=
== !=
&
^
|
&&
||
?:
= += -= /= %=
تبدیل انواع :
یک قانون وجود دارد در یک خط دستوری که در آن انواع مختلف و جود دارد انواع موجود به داده دارای حافظه بیشتر تبدیل می شود اگر نوع صحیح به اعشاری داشته باشیم تبدیل به آن اعشاری میشود.پش مثلا اگر در محاسباتمان دارای انواعی چون byte int short double باشیم جواب کل از نوع double است . اگر float نیز جز آنها بود فرقی نداشت چون double مقدار 8 بایت میگیرد حال اگر double نبود و float را داشتیم نتیجه float میشود
راه دیگری نیز هست برای تبدیل انواع به یکدیگر مثلا اگر x از نوع int بود و خواستیم آن را در یک float بریزیم باید چه کنیم یا بر عکس
y= (float)x
x=(int)y
باید توجه کرد اگر ما مقداری از نوع اعشاری را در نوع صحیح ریختیم مقدار اعشاری آن عدد از بین می رود و ما به جای 3.12 داریم 3
اجزای تشکیل دهنده بر نامه جاوا به ترتیب کتابخانه و پکیج و کلاس هر برنامه جاوا حتما دارای یک کلاس است هر کلا س نیز حتما در یک پکیج هستند آنهایی که پکیج برای آنها ایجاد نمیکنیم سیستم عامل به طور خودکارپکیجی به آن میدهد
شروع به کار با جاوا :
ما در اینجا از ادیتور sun one استفاده میکنیم این ادیتور مشکلات ما را با پکیج ها و استفاده از آنها به خوبی بر طرف می کند البته من نسخه ی 60 روز ه آن را دارم .شاید بشود آن را دانلود کرد تحقیق نکردم .
از کام پایلر j2sdk1.4.1 استفاده میکنم بعدا که کار بالا گرفت از sql server برای پایگاه داده استفاده میکنم
در مورد کتاب آسیاب ما همه چیز خورد میکند
برای نوشتن بعد از نوشتن کد آن را باید با پسوند java ذخیره کرد سپس در صفحه کامند به دایرکتوری کامبایلر خود بروید مثلا برای خود من c:\j2sdk1.4.1\bin و کلمه کلیدی javac را تایپ کرده و در جلوی آن مسیر ونام فایل خود را بنویسید و اینتر را بزنید تا یک فایل بایکد با پسوند class ایجاد میشود با ید پکیج آن را درست کنید که مشکل است پس آن را در شاخه کامپایلر خود کپی کنید تا سیستم عامل یک پکیج برای آن به صورت مجازی ایجاد کند وبا زدن
java و نام فایل خود که هم نام کلاس میباشد آن را اجرا کنید البته در ادیتور ما دیگر این همه دردشر وجود ندارد البیه در Jbiulder مشکل این است که باید در آن یک پروژه تعریف شود تا از پکیج ها به خوبی استفاده شود البته این اطلاعات به صورت تجربی بوده ومممکن است تا حدودی غلط باشد اگر شما درستر آن را بلد هستید بگوئید .با تشکر قبلی
برای ایجاد یک برنامه جاوا باید یک کلاس ایجاد کرد .ایجاد کلاس خود مسئله است اما در ابتدا از یک مدل استفاده میکنیم درابتدا از کلمه ی کلیدی public اشتفاده کرده بعد از آن کلمه ی کلیدی class رامی آوریم و بعد نام کلاس که همن نام فایل نیز هست را مینویسیم وبهد آن در دو آکولاد باز وبسته کد کلاس را مینویسیم اگر بخواهیم کلاس ما به طور مستقیم اجرا بشه باید دارای متد main باشد شکل کلی این متد به صورت مقابل است public static void main(String[] arg) سپس در بین دو آکولاد باز و بسته کد آن را در جلوی آن مینویسیم
چاپ در مانیتور در جاوا
برای این کار از متد های درون کلاس out که در پکیج System می باشد اشتفاده میشود که دو متد که در اینجا ما با آنها کار میکبیم عبارت اند از print() و println() که چیزی که میخواهیم چاپ شود در درون پرانتز مینویسیم که هر چه باشد به صورت String در آمده و چاپ میشود اما فرق این دو در چیست در این است که درمتد println() علاوه برچاپ مقدارهای خواسته شده دو مقدار کد 13 و 10 که با هم همان اینتر را ایجاد میکنند را چاپ میکند که باعث رفتن به خط بعددی میشود با کد های کنترلی شما می توانید تا حد زیادی بر جای کرزر کنترل داشته باشید البته خواهید دید که با وجود کلاسهای awt دیگر نیاز چندانی به اینها نداریم اما برای تست برنامه و شروع کار لازم است این کاراکترهای کنترلی عبارتند از(لفظ کاراکتر میتواند تا حد بالایی غلط باشد زیرا اینها داری چند کاراکتر اند تا خود کاراکتر باشند )'\n' به اول سطر اول میرود '\t' کار کلید تب راانجام میدهد .'\r' این کد کنترلی باعث میشود کرزر به اول سطر همان سطر برود'\b' یکی به عقب بر میگردیم '\"' گه یک " را تولید میکند '\'' که یک ' را چاپ میکنه '\f' که نمیدانم چه میکند و '\\' که یک \ را تولید میکندبااجرای این برنامه میتوانید صحت این اطلاعات راچک کنید.و متد چاپ را نیز تجربه کنید
public class Test11 {
public static void main(String[] arg){
System.out.print("it is the tab \t");
System.out.print("It is the rrrrrrrrrrrrr \r");
System.out.print("it is new \n") ;
System.out.print("it is 13b \b\b\b\b\b\b\b\b\b");
System.out.print("it is kotation \'");
System.out.print("itis dabel kotation \"");
System.out.print("it is the first \f");
System.out.print("it is a backslash); //g

{{
گفتیم که درون پرانتزهای متدهای چاپ به String تبدیل میشود پش می توان آنها را به هم وصل کردبرای مثال دستور زیر را درون متد main گذاشته تا ببینید چه میشود
Sestem.out.print("Hi" + "Hi" +"=HiHi"); //f
حتی میتواند یک نوع مانند int را به یک جمله وصل کنید برای مثال کد های یر را به کلاس خود اضافه کنید
public int old = 21; System.out.println("I have " +old +"years old"); /f
امید وارم جلسه اول خوب بوده باشد البته ما میخواستیم دراین جلسه از شئ گرایی و استثنا ها هم رد کنیم اما به دلایلی این کار را نکردیم. :موفق:
به کمک شما محتاجیم :flower:

javacaran
جمعه 30 بهمن 1383, 04:10 صبح
در ضمن ما دارای یک ایمیل دیگر با نام javaKaran@gmail.com نیز هستیم همچنین javacaran@gmail.com برای ما پیشنهاد انتقاد تحقیق و خبر بفرستید با ما باشید. :) :flower:

ali_hadian
جمعه 30 بهمن 1383, 06:36 صبح
سلام
مرسی
ما منتظر دومیش هستیم هیچ جا نمیریم همینجا هستیم

Farshad Paydar
دوشنبه 10 اسفند 1383, 10:06 صبح
موفق باشید. :flower:

javacaran
دوشنبه 24 اسفند 1383, 12:19 عصر
البته من به این وسیله از دوستان طلب بخشش را دارم چون در این دو سه هفته بد قولی من من بسیار درای مشکل بودم حتی برای دسترسی به اینترنت . انشاء الله در چهار شنبه هفته آینده سری دوم از مباحث جدید را در این سایت قرار میدهم :flower: :D

Babak-Aghili
دوشنبه 24 اسفند 1383, 12:44 عصر
:flower:

javacaran
جمعه 19 فروردین 1384, 21:00 عصر
من تا یکی دو ماه دیگر نمی توانم به اینترنت متصل بشم دوستان مرا ببخشند اما برای اینکه دوستان به گروه ما برسند برای آنها به دنبال آموزش فارسی گشتم و این هم عیدی من به دوستان
انشاالله سال خوبی داشته باشید تا دیدار دوباره اینترنت فعلا خداحافظ


http://www.irandevelopers.com/category.asp?id=12


لطفا خود را برای awt , swing,jdbc,networking حاضر کنید . انشاالله آنها را از اول تابستان شروع خواهیم کرد
البته با نسخه جدید جاوا
:flower: :)

javacaran
شنبه 29 مرداد 1384, 16:06 عصر
سلام به دوستان من بلاخره امدم بعد از کلی مشکلات که هنوز رفع نشده و بدتر هم شده .ولی دیدم فایده نداره که نداره این وقت است که مهم است به زودی (زود) برای شما از AWT خواهم گفت .