PDA

View Full Version : بیایید جاوا را از ابتدا و به کمک هم بیاموزیم



magina
جمعه 05 اسفند 1384, 15:59 عصر
اینجا تاپیکهای زیادی وجود داره ولی تو هیچ کدوم از اونا در مورد برنامه نویسی با جاوا چیز کلاسیکی که از سطح مقدماتی شروع شده باشه و با همکاری بقیه ادامه پیدا بکنه وجود نداره . اگر بقیه هم کمک کنن می تونیم یه همچین کاری رو اینجا انجام بدیم .:چشمک:

rezaTavak
جمعه 05 اسفند 1384, 17:11 عصر
سلام

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

magina
جمعه 05 اسفند 1384, 23:12 عصر
سلام

چرا هست از مقدماتی شروع کرده و من هم برای شروع اوایل از اون استفاده کردم. به شکل pdf هم هست. توی قسمت مقالات سایت را از اینجا بخواهید هم هست.
با سلام
دیدمش اتفاقا مطالب خوبی داره .
ولی برای برنامه نویسی فقط خواندن کتاب یا دیدن مثالهای آماده کافی نیست و باید واقعا برنامه نوشت تا یاد بگیریم .

magina
جمعه 05 اسفند 1384, 23:13 عصر
با سلام
برای پله اول یه سوال پیش میاد :
برای برنامه نویسی با جاوا از چه محیطی استفاده می کنید ؟

mahyar_dodo2
شنبه 06 اسفند 1384, 00:47 صبح
با سلام
برای پله اول یه سوال پیش میاد :
برای برنامه نویسی با جاوا از چه محیطی استفاده می کنید ؟
سلام من اولین پستم رو در این انجمن تجربه می کنم .
از محیط Jbuilder X هم برای برنامه نویسی جاوا استفاده می کنم .
در ضمن خوشحال می شم اگه کمکی در این راستا بکنم .

persianshadow
شنبه 06 اسفند 1384, 09:37 صبح
جی بیلدر - eclips

rezaTavak
شنبه 06 اسفند 1384, 12:42 عصر
NeatBeans-Eclipse-VimEditor!

magina
شنبه 06 اسفند 1384, 14:00 عصر
با سلام
خوش به حالتون !
من تازه دارم یاد می گیرم با Eclipse کار کنم .

magina
شنبه 06 اسفند 1384, 14:09 عصر
سلام من اولین پستم رو در این انجمن تجربه می کنم .
از محیط Jbuilder X هم برای برنامه نویسی جاوا استفاده می کنم .
در ضمن خوشحال می شم اگه کمکی در این راستا بکنم .
با سلام
پیشنهاد من اینه که با بازخوانی قسمتهای مختلف از آموزش جاوا برای هر قسمت چند تا تمرین پیشنهاد بدیم و با هم انجامشون بدیم .
فقط این که این تمرینا باید تا حدی آسون باشن که تازه کارایی مثل من هم بتونن انجامش بدن .

پیشنهاد می کنم فعلا رفرنس آموزشیمونم همون PDF موجود برای اموزش جاوا باشه.

persianshadow
شنبه 06 اسفند 1384, 15:23 عصر
من قصد یادگیری جاوا رو ندارم ( چون پیش تر ها یادگرفتم ) ولی اگه بخوایید می تونم در مورد این

تمرین ها کمک کنم

magina
شنبه 06 اسفند 1384, 17:15 عصر
من قصد یادگیری جاوا رو ندارم ( چون پیش تر ها یادگرفتم ) ولی اگه بخوایید می تونم در مورد این

تمرین ها کمک کنم
با سلام
قصد من از ایجاد این تاپیک این بود که اونایی که بلدن کمک کنن تا تازه کارایی مثل من بتونن چیزای بیشتری از جاوا یاد بگیرن .:خجالت:

magina
شنبه 06 اسفند 1384, 17:19 عصر
با سلام
یه سوال :
. Class چیه ؟ (یه تعریف ساده ) :متفکر:
لطفا یه پیشنهاد برای ساخت یک کلاس ساده به عنوان اولین تمرین :تشویق:

persianshadow
شنبه 06 اسفند 1384, 19:03 عصر
کلاس یک مدل انتزاعی هست که تنها یک موضوع واقعی و یا یک مسئله رو مدل می کند ولی قابل

اجرا نیست. اشیا از روی کلاس ها ساخته می شوند و قدرت اجرایی دارند.

من پیشنهاد می کنم که : کلاسی طراحی کنید که یک ماشین را مدل کند.

در ضمن به یک نکته هم اشاره کنم نیاز نیست به حزئیات زیاد دقت کنید. اصولا بعضی از روش

های پیاده سازی بسیار دست و پا گیر هستن و فرصت توسعه را کند می کنند . مثلا متدهای

دست یاب و مواردی از این دست.

azizi-ra
یک شنبه 07 اسفند 1384, 11:48 صبح
سلام به دوستان عزیز جاوا کار
اگر میخواهید جاوا یاد بگیرید توصیه میکنم از netBeans (http://www.netbeans.org) استفاده کنید. در نگارش پنج آن امکانات بسیار جالبی وجود دارد و کار کردن با آن بسیار ساده است و شرکت Sun از آن حمایت میکند.:لبخند: در مورد Eclipse باید بگوییم که کار کردن با آن سخت است و قابلیتی بهتر از netBeans (http://www.netbeans.org) ندارد.:متفکر: اگر در مورد Object Oriented مشکل داشتید من در خدمتتان هستم (http://myooworld.blogspot.com). :چشمک:

javaphantom
یک شنبه 07 اسفند 1384, 13:43 عصر
دوستان عزیزم من فکر کنم که جاوا نیازی به هیچ گونه محیطی ندارد و می توان تمام کدهای جاوا را دیک notepad و یا در یک فایل TXT نوشت و با داشتن virtual machine آن، آن رو در هر platforme اجرا کرد. سعی کنیم که خودمون کامپلر خودمون باشیم.
محیطی هایی که تاکنون برای java موجود هست به نظر من از لحاظ راحت بودن editor من نظرم با sun java راحتر می شه کارکرد. نسخه جدید اون همکنون بصورت free در سایت آن هست.

magina
یک شنبه 07 اسفند 1384, 16:17 عصر
کلاس یک مدل انتزاعی هست که تنها یک موضوع واقعی و یا یک مسئله رو مدل می کند ولی قابل اجرا نیست. اشیا از روی کلاس ها ساخته می شوند و قدرت اجرایی دارند.

من پیشنهاد می کنم که : کلاسی طراحی کنید که یک ماشین را مدل کند.

در ضمن به یک نکته هم اشاره کنم نیاز نیست به حزئیات زیاد دقت کنید. اصولا بعضی از روش

های پیاده سازی بسیار دست و پا گیر هستن و فرصت توسعه را کند می کنند . مثلا متدهای

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

لطفا منظورتان از یک ماشین را روشنتر بیان کنید . ( اتومبیل یا ماشین ابزار ؟ )

magina
یک شنبه 07 اسفند 1384, 16:20 عصر
دوستان عزیزم من فکر کنم که جاوا نیازی به هیچ گونه محیطی ندارد و می توان تمام کدهای جاوا را دیک notepad و یا در یک فایل TXT نوشت و با داشتن virtual machine آن، آن رو در هر platforme اجرا کرد. سعی کنیم که خودمون کامپلر خودمون باشیم.
محیطی هایی که تاکنون برای java موجود هست به نظر من از لحاظ راحت بودن editor من نظرم با sun java راحتر می شه کارکرد. نسخه جدید اون همکنون بصورت free در سایت آن هست.
با سلام
به نظر من :
واقعیتشو بخواهید بیشترین تاثیر یک محیط کار برای جاوا همون راحت بودن اون برای برنامه نویسیه .

magina
یک شنبه 07 اسفند 1384, 17:03 عصر
به عنوان یک مثال ساده یک کلاس برای نام و نام خانوادگی در یک خانواده :



class familyMember {
String surname = "majidi";
String name;

}

javaphantom
یک شنبه 07 اسفند 1384, 22:32 عصر
با عرض سلام
منظور دوست عزیزمون از کلاسهای انتزاعی همان abstract class می باشد که بعداً به صورت مفصل درباره آن صحبت خواهد شد.
کلاس برای ایجاد شیئی بکارمی رود. همانطور که استاد بنده فرمودند.
طبق قرارداد نام گذاری در جاوا نام کلاس باید با حروف بزرگ نمایش داده شود.
حرف کلیدی public درپشت کلاس به این معنا هست که هر کاربری می تواند از ان کلاس نمونه تعریف کند و اگر چیزی نیویسد به معنای یک package می باشد که بعدً در مورد آن صحبت خواهیم کرد.
فایلی که در ان کد جاوا می نویسید باید با پسوند java باشد و نام فایل با نام public class شما کاملا یکی باشد. در یک فایل جاوا فقط یک public class می توان تعریف کرد. باقی همه با هیچی یا همان package شناخته می شوند. بجز inner class ها که بعداً در مورد آن صحبت خواهد شد.
برای run کردن برنامه از method مین(main) که همیشه بصورت public static ودرای آرگومان یک آرایه از String[] x می باشد استفاده می شود. دلیل آن بعداً گفته می شود.
از آنجایی که جا یک زبان کاملا object oriented هست method main نیز باید درون یک کلاس نوشته شود مانند C# برخلاف C++.
برای کامپایل کردن FileName.java باید از jdk که virtual machine جاوا هست و تا نسخه 1_5 موجود هست استفاده شود.(به امزمامه ستهای اولیه). با درستور javac FileName.java برنامه کامپایل و بادستور java FileName برنامه اجرا.(در منوی run windows یا در محیط dos ) یادآوری با فرمان cmd در منوی Run وارد محیط dos می شوید.
از آنجایی که java یک زبان مستقل از محیط است می توانید برنامه خود رو در یک notepad یا edit داس بنویسید.
مثال: برنامه ای که در خروچی پیغامه hello world را چاپ کند.
اول در notepad یک فایل به نام MyFirstClass.java درست کرده و چنین بنویسید.
public class MyFirstClass {

public static void main(String[] s) {
System.out.println("hello world");
}
}
می دونم که همه اینجا استاد من هستند ولی من این نمونه را برای کسانی که دوست دارند از نو یاد بگیرند نوشتم
هر گونه سوال دیگری نیز بود خوشحال میشم بتونم کمک کنم و یاد بگیرم از سوالهای درستتون.

magina
دوشنبه 08 اسفند 1384, 00:11 صبح
با عرض سلام
منظور دوست عزیزمون از کلاسهای انتزاعی همان abstract class می باشد که بعداً به صورت مفصل درباره آن صحبت خواهد شد.
کلاس برای ایجاد شیئی بکارمی رود. همانطور که استاد بنده فرمودند.
طبق قرارداد نام گذاری در جاوا نام کلاس باید با حروف بزرگ نمایش داده شود.
حرف کلیدی public درپشت کلاس به این معنا هست که هر کاربری می تواند از ان کلاس نمونه تعریف کند و اگر چیزی نیویسد به معنای یک package می باشد که بعدً در مورد آن صحبت خواهیم کرد.
فایلی که در ان کد جاوا می نویسید باید با پسوند java باشد و نام فایل با نام public class شما کاملا یکی باشد. در یک فایل جاوا فقط یک public class می توان تعریف کرد. باقی همه با هیچی یا همان package شناخته می شوند. بجز inner class ها که بعداً در مورد آن صحبت خواهد شد.
برای run کردن برنامه از method مین(main) که همیشه بصورت public static ودرای آرگومان یک آرایه از String[] x می باشد استفاده می شود. دلیل آن بعداً گفته می شود.
از آنجایی که جا یک زبان کاملا object oriented هست method main نیز باید درون یک کلاس نوشته شود مانند C# برخلاف C++.
برای کامپایل کردن FileName.java باید از jdk که virtual machine جاوا هست و تا نسخه 1_5 موجود هست استفاده شود.(به امزمامه ستهای اولیه). با درستور javac FileName.java برنامه کامپایل و بادستور java FileName برنامه اجرا.(در منوی run windows یا در محیط dos ) یادآوری با فرمان cmd در منوی Run وارد محیط dos می شوید.
از آنجایی که java یک زبان مستقل از محیط است می توانید برنامه خود رو در یک notepad یا edit داس بنویسید.
مثال: برنامه ای که در خروچی پیغامه hello world را چاپ کند.
اول در notepad یک فایل به نام MyFirstClass.java درست کرده و چنین بنویسید.
public class MyFirstClass {

public static void main(String[] s) {
System.out.println("hello world");
}
}
می دونم که همه اینجا استاد من هستند ولی من این نمونه را برای کسانی که دوست دارند از نو یاد بگیرند نوشتم
هر گونه سوال دیگری نیز بود خوشحال میشم بتونم کمک کنم و یاد بگیرم از سوالهای درستتون.
با سلام
ممنونم که کمک می کنید .
پس نتیجه می گیریم که یک برنامه جاوا مجموعه ای از کلاسهاست و که متد main در آن قرار دارد حتما مشخصه public دارد .
نکته : در هر فایل ایجاد شده برای جاوا فقط یک کلاس با مشخصه public قرار دارد .

magina
دوشنبه 08 اسفند 1384, 00:18 صبح
با سلام
متد main از چند لحاظ با بقیه متد ها فرق دارد :

تنها یک بار در برنامه ظاهر می شود .
این متد همواره static است .
به ندرت مقداری را برمی گرداند و معمولا دارای یک نوع بازگشتی void است .
لیست پارامترهای ورودی آن همواره یکسان است ( [] String args ).
معمولا تنها متد برنامه است که یک شیی از روی کلاس خود ایجاد می کند.



Every Java application must contain a main method whose signature looks like this:

public static void main(String[] args)

The method signature for the main method contains three modifiers:
public indicates that the main method can be called by any object. Controlling Access to Members of a Class covers the ins and outs of the access modifiers supported by the Java language.
static indicates that the main method is a class method. Understanding Instance and Class Members talks about class methods and variables.
void indicates that the main method doesn't return any value.


http://java.sun.com/docs/books/tutorial/getStarted/application/main.html

magina
دوشنبه 08 اسفند 1384, 00:30 صبح
با سلام
به عنوان مثال :



import java.lang.*;

public class sur {
public static void main(String[] args) {
familyMember dad = new familyMember();
dad.name = "Reza ";
System.out.print(dad.name);
System.out.println(dad.surname);

}
}
class familyMember {
String surname = "Mahtabi";
String name;

}

persianshadow
دوشنبه 08 اسفند 1384, 02:52 صبح
دوستمون magina نتیجه گرفته بودن که در یک برنامه جاوا تنها یک کلاس به صورت public تعریف

می شود و آنهم کلاسی است که شامل متد main هست که این موضوع اشتباهه. ما می تونیم

تویه یک برنامه صدتا کلاس public داشته باشیم.

rezaTavak
دوشنبه 08 اسفند 1384, 07:55 صبح
سلام

در هر فایل جاوا فقط یک فایل Public است اما ایک برنامه می تواند از چند فایل تشکیل شود. کلاس public باید با نام فایل یکی باشد.

azizi-ra
دوشنبه 08 اسفند 1384, 08:09 صبح
دوستمون magina نتیجه گرفته بودن که در یک برنامه جاوا تنها یک کلاس به صورت public تعریف

می شود و آنهم کلاسی است که شامل متد main هست که این موضوع اشتباهه. ما می تونیم

تویه یک برنامه صدتا کلاس public داشته باشیم.

فکر کنم منظور دوستمون این بوده که در یک فایل نمیتوان چند کلاس public داشت نه برنامه. شما هم زیاد سخت نگیرید. همه اینجا هستیم تا چیز یاد بگیریم:متفکر:

azizi-ra
دوشنبه 08 اسفند 1384, 08:49 صبح
قابل توجه دوستانی که تازه شروع به یاد گیری جاوا کرده اند و در مفاهیم Class و Object مشکل دارند
من سعی کرده ام یک سری متن آموزشی به زبان شیرین فارسی در این مورد تهیه کنم و اگر این کار باعث پیشرفت شما عزیزان بشود که البته جای بسی خوشهالی است برای من:خجالت:
در این مقاله ها که به صورت چند قسمتی تهیه شده سعی کرده ام با زبان ساده مفاهیم Object Oriented را توضیح بدهم . این آموزش در راستای مکالمات دو نفر به نامهای مبتدی و مهندس آماده شده که زیاد خشک و خسته کننده نباشد. البته من این مقاله ها را برای یک نشریه معتبر آموزشی آماده میکنم ولی اگر شما هم دوست داشتید در اختیار شما هم قرار میدهم. این متنها را میتوانید در weblog (http://myooworld.blogspot.com) خودم مشاهده کنید . پیشاپیش از انتقادات سازنده شما تشکر میکنم.:چشمک:

rezaTavak
دوشنبه 08 اسفند 1384, 09:03 صبح
سلام



با سلام
متد main از چند لحاظ با بقیه متد ها فرق دارد :
تنها یک بار در برنامه ظاهر می شود .
این متد همواره static است .
به ندرت مقداری را برمی گرداند و معمولا دارای یک نوع بازگشتی void است .
لیست پارامترهای ورودی آن همواره یکسان است ( [] String args ).
معمولا تنها متد برنامه است که یک شیی از روی کلاس خود ایجاد می کند.
این متد می تواند در هر کلاسی وجود داشته باشد و برای تست هر کلاس می تواند به کار رود.
می تواند استاتیک نباشد.
می تواند مقدار بر گرداند.
لیست پارامترهای آن یکسان نیست.
شما برای ساخت شی اولین چیزی که هست سازنده کلاس است که با نام کلاس یکی است.



اما این متد به ارث برده از c است. می دانید در سی فقط یک بار تابع تعریف می شود ولی در جاوا چون متدها در کلاس محصور شده اند می تواند هر کلاس یک متد main داشته باشد. همچنین هر کلاس چند متد main می تواند داشته باشد.
اگر یک کلاس ترجمه شده را اجرا کنید به سراغ متد main در کلاس همنام فایل می رود. که چون سیستم عامل معمولا مقدار عددی را به عنوان نتیجه بر میگرداند (errorlevel) این مقدار اصولا عددی است. و چون لیست پارامترها از سیستم عامل معمولا ارسال می شود از اصول سیستم عامل می دانید که هر برنامه می تواند سوئیچ داشته باشد که همین مقدار ارسال شده به تایع main است.
http://java.sun.com/docs/books/tutorial/getStarted/application/main.html


The main Method
The first bold line in the following listing begins the definition of the main method.
/**
* The HelloWorldApp class implements an application that
* simply displays "Hello World!" to the standard output.
*/
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //Display the string.


}
}
In the Java programming language,
every application must contain a main method whose signature looks like this:
public static void main(String[] args)
You can name the argument whatever you want,
but most programmers choose "args" as shown above.
Also, the modifiers public and static can be written in either
order (public static or static public) but the convention
is to use public static as shown above.
The method signature for the main method contains three modifiers:
public indicates that the main method can be invoked by any object. Controlling Access to Members of a Class (http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html)http://java.sun.com/docs/books/tutorial/images/tutorialIcon.gif (http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html) covers the ins and outs of the access modifiers supported by the Java programming language.
static indicates that the main method is a class method (as opposed to an instance method). Understanding Instance and Class Members (http://java.sun.com/docs/books/tutorial/java/javaOO/classvars.html)http://java.sun.com/docs/books/tutorial/images/tutorialIcon.gif (http://java.sun.com/docs/books/tutorial/java/javaOO/classvars.html) talks about class methods and variables.
void indicates that the main method doesn't return any value.How the main Method Gets Invoked
The main method is similar to the main function in C and C++.
When the interpreter executes an application,
it starts by calling the class's main method.
The main method then calls all the other methods required to run your application.
If you try to invoke the interpreter on a class that does not have a main method,
the interpreter refuses to run your program and displays an error message similar to this:
In class NoMain: void main(String argv[]) is not defined
Arguments to the main Method

As you can see from the following code snippet, the main method accepts a single argument: an array of elements of type String.
public static void main(String[] args)
This array is the mechanism through which the runtime system passes information to your application.
Each String in the array is called a command-line argument.
Command-line arguments let users affect the operation of the application without recompiling it.
For example, a sorting program might allow the user to specify
that the data be sorted in descending order with this command-line argument:
-descending
The "Hello World" application ignores its command-line arguments, so there isn't much more to discuss here. However, you can get more information about command-line arguments, including the framework for a command-line parser that you can modify for your specific needs, in the Setting Program Attributes (http://java.sun.com/docs/books/tutorial/essential/attributes/index.html)http://java.sun.com/docs/books/tutorial/images/tutorialIcon.gif (http://java.sun.com/docs/books/tutorial/essential/attributes/index.html) lesson.

Note to C and C++ Programmers: The number and type of arguments passed to the main method in the runtime environment differ from the number and type of arguments passed to C and C++'s main function. For further information refer to Command-Line Arguments (http://java.sun.com/docs/books/tutorial/essential/attributes/cmdLineArgs.html)http://java.sun.com/docs/books/tutorial/images/tutorialIcon.gif (http://java.sun.com/docs/books/tutorial/essential/attributes/cmdLineArgs.html) in the Setting Program Attributes (http://java.sun.com/docs/books/tutorial/essential/attributes/index.html)http://java.sun.com/docs/books/tutorial/images/tutorialIcon.gif (http://java.sun.com/docs/books/tutorial/essential/attributes/index.html) lesson.

javaphantom
دوشنبه 08 اسفند 1384, 11:41 صبح
سلام
نه حتما دلیل نداره که اگر ما یک public class داشته باشیم حتما در آن method main نیز وجود داشته باشد. مهم اینکه که اگر یک public class در یک فایل جاوا داشته باشیم دیگر نمی توان public class دیگری تعریف کرد د هما فایل. مگر بخواهیم inner class داشته باشیم. ما می توانیم چند فایل جاوا داشته باشیم که در هر کدام از آنها یک public class تعریف شده باشد و د هیچ کدامشون method main وجود نداشته باشه و حتا می تونه داشته باشه .
در مبحث package , interface , inheritance, innerclass در باره معمار کار بیشتر صحبت می کنیم.
از ساده شروع می کنیم کم کم سخت می کنیم . ممکنه خیلی از دوستان تا بحال با object oriented خوب آشنا نشده باشند.
فعلا این فرق رو در جاوا بر خلاف ++C مشاهده کردیم(مبتدیان گوش کنند و حفظ کنند فعلا) که method main
1.حتما باید داخل یک کلاس باشد.
2.حتما public باشد
3.حتما static باشد. در مود static method ها باید بطور کامل بعدا صحبت بشه.
4.آرگومان ورودی از نوع آرایه String باشند.
5.مقدار بازگشتی آن حتماٌ باید void (باطل) باشد به زبان ساده تر هیج مقدار بازگشتی ندارد بر خلاف ++C
از استاد عزیزم آقای tavak بسیار تشکر می کنم که متن کاملی رو برای ما گذاشته .
من فقط می خواهم تا می تونم ساده بگم تا طرفتار جمع بشه همین.
بازم اگر جایی در نوشته های من اشکال مشاهده شد از دوستان خواهش می کنم حتما تصیح کنند.

magina
دوشنبه 08 اسفند 1384, 22:24 عصر
دوستمون magina نتیجه گرفته بودن که در یک برنامه جاوا تنها یک کلاس به صورت public تعریف

می شود و آنهم کلاسی است که شامل متد main هست که این موضوع اشتباهه. ما می تونیم

تویه یک برنامه صدتا کلاس public داشته باشیم.


سلام

در هر فایل جاوا فقط یک فایل Public است اما ایک برنامه می تواند از چند فایل تشکیل شود. کلاس public باید با نام فایل یکی باشد.
با سلام
با تشکر از توجه و تذکر به جای دوستان :تشویق:
پست مورد نظر اصلاح شد .
یک توضیح هم دارم :
در واقع با توجه به این که هر برنامه ایجاد شده در جاوا خودش هم یک کلاس است و در هر برنامه دیگری هم می توانیم از آن استفاده بکنیم ؛ با استفاده از کلاسهای قبلی ما داریم از شیی ایجاد شده از آنها استفاده می کنیم و نه از کلاس اصلی . بنابراین می تونیم نتیجه بگیریم که توی یک برنامه فقط یک کلاس Public داریم ولی می تونیم از تعداد زیادی شیی استفاده بکنیم که کلاس انها قبلا به صورت برنامه های مجزا که خودشان هم دارای کلاس Public بوده اند تهیه شده است.

magina
دوشنبه 08 اسفند 1384, 22:34 عصر
با سلام
تا من بجنبم و پست قبلی رو بنویسم این دو تا پست جدید هم اومدن
فکر می کنم بهتر است یک نکته توضیح داده بشه اونم اینه که زبان جاوا یک زبان شیی گرای کامل است . هر برنامه هم بعد از ایجاد ، تبدیل به یک کلاس می شود و می توان از آن در هر برنامه دیگری استفاده کرد . بنابراین وقتی از یک برنامه حرف می زنیم داریم از یک کلاس در حال ایجاد حرف می زنیم که کی تواند از کلاسهای بالاتر از خودش ارث ببرد و از اشیای خیلی زیاد دیگری هم که از روی کلاسهای ایجاد شده قبلی ساخته شده اند استفاده بکند .

magina
دوشنبه 08 اسفند 1384, 22:47 عصر
سلام
نه حتما دلیل نداره که اگر ما یک public class داشته باشیم حتما در آن method main نیز وجود داشته باشد. مهم اینکه که اگر یک public class در یک فایل جاوا داشته باشیم دیگر نمی توان public class دیگری تعریف کرد د هما فایل. مگر بخواهیم inner class داشته باشیم. ما می توانیم چند فایل جاوا داشته باشیم که در هر کدام از آنها یک public class تعریف شده باشد و د هیچ کدامشون method main وجود نداشته باشه و حتا می تونه داشته باشه .
در مبحث package , interface , inheritance, innerclass در باره معمار کار بیشتر صحبت می کنیم.
از ساده شروع می کنیم کم کم سخت می کنیم . ممکنه خیلی از دوستان تا بحال با object oriented خوب آشنا نشده باشند.
فعلا این فرق رو در جاوا بر خلاف ++C مشاهده کردیم(مبتدیان گوش کنند و حفظ کنند فعلا) که method main
1.حتما باید داخل یک کلاس باشد.
2.حتما public باشد
3.حتما static باشد. در مود static method ها باید بطور کامل بعدا صحبت بشه.
4.آرگومان ورودی از نوع آرایه String باشند.
5.مقدار بازگشتی آن حتماٌ باید void (باطل) باشد به زبان ساده تر هیج مقدار بازگشتی ندارد بر خلاف ++C
از استاد عزیزم آقای tavak بسیار تشکر می کنم که متن کاملی رو برای ما گذاشته .
من فقط می خواهم تا می تونم ساده بگم تا طرفتار جمع بشه همین.
بازم اگر جایی در نوشته های من اشکال مشاهده شد از دوستان خواهش می کنم حتما تصیح کنند.
با سلام
از توضیحی که دادید ممنونم :تشویق:

magina
دوشنبه 08 اسفند 1384, 23:06 عصر
با سلام
در ابتدای برنامه های جاوا معمولا از واژه کلیدی import استفاده می کنیم. این مکانیسم امکان دستیابی به کلاسهای موجود در کتابخانه های کلاسهای جاوا را به برنامه می دهد . بر خلاف تصور بعضی این برنامه پکیجهای مورد نظر را به برنامه ادغام نمی کند بلکه صرفا توجه کامپایلر جاوا را به مکان دیگری که باید برای یافتن کلاسها و متدهای مورد استفاده در برنامه جستجو کند ، جلب می کند.
معمولا هنگام استفاده بهتر است همه کلاسهای مورد استفاده در پکیج را با استفاده از * وارد کنیم :


import java.lang.*
با توجه به اینکه این کار در واقع چیزی را در برنامه ادغام نمی کند ، این کار نه زمان ترجمه و نه اندازه کلاس ایجاد شده را افزایش نخواهد داد.

rezaTavak
دوشنبه 08 اسفند 1384, 23:31 عصر
سلام

اما زمان ترجمه را زیاد خواهد کرد.

persianshadow
دوشنبه 08 اسفند 1384, 23:37 عصر
یه نکته جالب دیگه هم راجع به پکیج ها اینه که تنها در جاوا پکیج های بصورت فیزیکی و در اصل

بر اساس پوشه ها وجود دارند. به عنوان مثال در دات نت مفهوم Namespace وجود داره که همون

پکیج ها هست ولی پوشه ای در کار نیست.

magina
سه شنبه 09 اسفند 1384, 00:39 صبح
یه نکته جالب دیگه هم راجع به پکیج ها اینه که تنها در جاوا پکیج های بصورت فیزیکی و در اصل

بر اساس پوشه ها وجود دارند. به عنوان مثال در دات نت مفهوم Namespace وجود داره که همون

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

javaphantom
سه شنبه 09 اسفند 1384, 01:24 صبح
با سلام به اساتیت محترم
من احساس می کنم که خیلی داریم تند حرکت می کنیم. من که امروز می گم دارم جاوا می خونم اگر کسی از من بپرسه چرا جاوا خوب برو بیسیک بخون اصلا الان #C مد شده و خیلی هم قوی هست چرا نمی ری اون کار کنی اصلا ژ++C که دیگه اخرشه با هاش سیستم عامل می نویسن اصلا همین جاوا رو می گن با C++ نوشتن خوب برو اونو کار کن، من چی بگم؟ چه جوری از هدفم دفاع کنم؟ بگم جاوا چیه؟ یک جایی در اندونزی؟!
از دوستان خواهش دارم که در باره فهرست زیر به سادگی و اختصار و اون چیزی که خودشون فهمیدن به منهم یاد بدن. واقعا دعاتون می کنم اگر به من بگین مفاهیم زیر در جاوا که میگن یعنی چه؟
1:Simplicity سادگی
2.Object Oriented شیئی گرایی
3.Distributed توزیع پذیری
4.Robust پرقدرت
5.Secure امنیت
6.Portable قابل جابجایی
7.Flexible انعطاف پذیری
9.Interpreted تفسیر کنندگی
10.Multithreaded موازی عمل
11.Dynamic پویا بودن
12.Applet برنامک
13.Servlet
14.Beans
java script همون جاوای خودمونه یا از خانواده جاواست
16. JDK, JRE
اینجوری تازه می تونم بفهم که اصلا جاوا بدرد کار من میخوره یا نه یا برم یک چیزه دیگه یاد بگیرم مثلا C# که الان بد روی بورس. البته لازم به ذکر که C omega هم اومده برای ویندوز 64 بیتی.
امان از این MicroSoft :D

azizi-ra
سه شنبه 09 اسفند 1384, 09:14 صبح
با سلام به اساتیت محترم
من احساس می کنم که خیلی داریم تند حرکت می کنیم. من که امروز می گم دارم جاوا می خونم اگر کسی از من بپرسه چرا جاوا خوب برو بیسیک بخون اصلا الان #C مد شده و خیلی هم قوی هست چرا نمی ری اون کار کنی اصلا ژ++C که دیگه اخرشه با هاش سیستم عامل می نویسن اصلا همین جاوا رو می گن با C++ نوشتن خوب برو اونو کار کن، من چی بگم؟ چه جوری از هدفم دفاع کنم؟ بگم جاوا چیه؟ یک جایی در اندونزی؟!
از دوستان خواهش دارم که در باره فهرست زیر به سادگی و اختصار و اون چیزی که خودشون فهمیدن به منهم یاد بدن. واقعا دعاتون می کنم اگر به من بگین مفاهیم زیر در جاوا که میگن یعنی چه؟
1:Simplicity سادگی
2.Object Oriented شیئی گرایی
3.Distributed توزیع پذیری
4.Robust پرقدرت
5.Secure امنیت
6.Portable قابل جابجایی
7.Flexible انعطاف پذیری
9.Interpreted تفسیر کنندگی
10.Multithreaded موازی عمل
11.Dynamic پویا بودن
12.Applet برنامک
13.Servlet
14.Beans
java script همون جاوای خودمونه یا از خانواده جاواست
16. JDK, JRE
اینجوری تازه می تونم بفهم که اصلا جاوا بدرد کار من میخوره یا نه یا برم یک چیزه دیگه یاد بگیرم مثلا C# که الان بد روی بورس. البته لازم به ذکر که C omega هم اومده برای ویندوز 64 بیتی.
امان از این MicroSoft :D

مطلب خوبی را عنوان کردید. به نظر من ما نباید روی تکنولوژیهای کامپیوتری تعصب داشته باشیم این تکنولوژیها ایجاد شده اند تا ما با خیال راحت بدون درگیر شدن با موضوعات سیستمی روئ حل مشکل اصلی کار کنیم. البته بعضی از این تکنولوژیها در یک کلاس هستند و بسیار شبیه هم عمل میکنند مانند سی شارپ و جاوا که البته تفاوتهای هم دارند. یاد گرفتن هر دو هم اگر چه خوب است ولی کاری است بسیار سخت. در اینجا منظورم یاد گرفتم قواعد کد نویسی نیست بلکه تجربه طراحی نرم افزارهای پیچیده است.
حالا دو مسیر برای حرکت داریم (به نظر من)
یک - راه مایکروسافت که راه خوبی است ولی در این مسیر شما خود را منحصر به یک سیستم میکنید چون اساس کار مایکروسافت انحصار است.
دو - راه کد باز یا Open source که جاوا در این مسیر قدم بر میدارد. در این مسیر طراحان نرم افزار با استفاده از تجربیات هم به جلو میروند و خود این تجربیات را بدون هیچ چشمداشتی در اخیار دیگران قرار میدهند . البته این مسیر برای ما ایرانیان یک کمی سخت است چون ما از لحاظ ژنتیکی روی مسایل شراکت و کار گروهی مشکل داریم :لبخند: دور از جون شما البته
در مورد مطالبی که در باره آنها توضیح خواسته بودید باید بگویم که هر کدام از این کلمات برای خودشان چندین صفحه توضیح دارند که پیشنهاد میکنم هر نفر راجب یک مورد توضیح کامل بدهد. در باره Object Oriented اگر دوست داشتید به weblog (http://myooworld.blogspot.com) من رجوع کنید.
راستی ، javascript هم هیچ ربطی به جاوا ندارد ، در هیچ ضمینه ای بجز اسم :لبخند:
موفق باشید

rezaTavak
سه شنبه 09 اسفند 1384, 10:14 صبح
سلام

هدف => زبان برنامه نویسی

javaphantom
سه شنبه 09 اسفند 1384, 11:14 صبح
سلام دوباره
علت بیان مطالب بالا براین پایه استوار بود که شعار یا تیتر این تالار اینکه بیایم جاوا رو از پایه شروع کنیم پس هر کس که وارد این بخش می شه در قدم اول باید با داستان این برنامه آشنا باشه.
اما ایجاد این سئوالات به این معنا نیست که من به جواب آنها اشراف ندارم بلکه فقط ایجاد یک جرقه برای مرور بعضی مطالب برای دوستان با تجربه و نقطه شروعی برای دوستان مبتدی که اهل مطالعه نیستند یا وقت کافی برای مطالعه ندارند و نیاز به یک سری مطالب ساده وصریح دارند.
امروزه بحث بر سر انیکه C# یک زبان برنامه نویسی Flexible هست و من با تجربه ای که در زبان برنامه نویسی C# دارم با یک مثال نقض مسئله رو براتون روشن می کنم و ثابت می کنم که جاوا یک زبان برنامه نویسی flexible یا انعطاف پذیره نه C و خانواده آن.
شما در C و خانواده اون وقتی یک متغییر از نوع int تعریف می کنید چند بایت حافظه اشغال می شود؟
2 بایت 4 بایت 8 بایت؟ در جاوا چطور؟
چواب : بستگی به نوع CPU شما دارد اگر شما از ریزپردازنده 32 بیتی استفاده می کنید 4 بایت اگر از 16 بیتی استفاده می کنید 2 بایت و اگر از 64 بیتی استفاده می کنید 8 بایت C و خانواده اون برای شما اندازه حافظه در نظر گرفته می شود. نمونه تمام نسخه های برنامه های نوشته شده برای 32 بیت یا 64 بیت که در بازار امروزه موجوده. پس می بینیم که C# با اون همه سر و صدا یک برنامه flexible یا انعطاف پذیر نیست .
اما در جاوا داستان کاملا متفاوت است و در حاوا همیشه مقدار 4 بایت به حافظه تخصیص می دهد و با عوض شدن نوع ریزپردازنده virtual machine جاوا بصورت خودکار اندازه حافظه رو تغییر می دهد.
پس جاوا یک زبان برنامه نویسی کاملا flexible یا انعطاف پذیره

bahman_asham
سه شنبه 09 اسفند 1384, 11:33 صبح
من هم با نظر شما موافقم.

magina
سه شنبه 09 اسفند 1384, 15:02 عصر
با سلام به اساتیت محترم
من احساس می کنم که خیلی داریم تند حرکت می کنیم. من که امروز می گم دارم جاوا می خونم اگر کسی از من بپرسه چرا جاوا خوب برو بیسیک بخون اصلا الان #C مد شده و خیلی هم قوی هست چرا نمی ری اون کار کنی اصلا ژ++C که دیگه اخرشه با هاش سیستم عامل می نویسن اصلا همین جاوا رو می گن با C++ نوشتن خوب برو اونو کار کن، من چی بگم؟ چه جوری از هدفم دفاع کنم؟ بگم جاوا چیه؟ یک جایی در اندونزی؟!
از دوستان خواهش دارم که در باره فهرست زیر به سادگی و اختصار و اون چیزی که خودشون فهمیدن به منهم یاد بدن. واقعا دعاتون می کنم اگر به من بگین مفاهیم زیر در جاوا که میگن یعنی چه؟
1:Simplicity سادگی
2.Object Oriented شیئی گرایی
3.Distributed توزیع پذیری
4.Robust پرقدرت
5.Secure امنیت
6.Portable قابل جابجایی
7.Flexible انعطاف پذیری
9.Interpreted تفسیر کنندگی
10.Multithreaded موازی عمل
11.Dynamic پویا بودن
12.Applet برنامک
13.Servlet
14.Beans
java script همون جاوای خودمونه یا از خانواده جاواست
16. JDK, JRE
اینجوری تازه می تونم بفهم که اصلا جاوا بدرد کار من میخوره یا نه یا برم یک چیزه دیگه یاد بگیرم مثلا C# که الان بد روی بورس. البته لازم به ذکر که C omega هم اومده برای ویندوز 64 بیتی.
امان از این MicroSoft :D

با سلام
قرار شد که به عنوان اطلاعات پیش فرض همان ای بوک موجود روی همین سایت ( مطرح شده در پستهای اول ) را به عنوان رفرانس بپذیریم و تقریبا بیشتر این مطالب در آنجا بیان شده اند. :تشویق:

magina
سه شنبه 09 اسفند 1384, 15:04 عصر
سلام

هدف => زبان برنامه نویسی
با سلام
سعی می کنیم با همین هدف ادامه دهیم . :خجالت:

magina
سه شنبه 09 اسفند 1384, 17:23 عصر
با سلام
یکی از اساسی ترین کارها در جاوا ایجاد اشیا از کلاسها است .
هنگامی که یک شیی ایجاد می شود برنامه جاوا اعمال زیر را انجام می دهد :

حافظه اصلی را به متغیرهای شیی اختصاص می دهد .
شیی را به کد متدهای خود پیوند می دهد.
اگر کلاسی که شیی از ان ایجاد شده است دارای سازنده ای باشد سازنده را اجرا می کند
آدرس شروع ذخیره داده های شیی ( یک اشاره گر ) را به برنامه باز می گرداند.

Pywsite
سه شنبه 09 اسفند 1384, 18:24 عصر
من خودم یک سؤال دارم !! چه طور می توان مسنجری برای سایت قرار داد که باز دیدکنده سؤال یا نظر خود را در آن نوشته و پس از فرستادن مطالبش اتوماتیک و بلافاصله در سایت ما قرار گیرد. پیشاپیش از راهنمایی شما متشکرم

persianshadow
سه شنبه 09 اسفند 1384, 20:42 عصر
دوست عزیز pywsite لطفا پست بی معنی نکن !

در ضمن اون چیزی که شما می گید بهش مسنجر سایت نمی گن !

javaphantom
سه شنبه 09 اسفند 1384, 21:37 عصر
خوب یعنی پیشنهاد و سوالات من به هیچ دردی نمی خورد. همه بعنوان پیش فرض در کتاب هست.
واقعا راست میگی پس من برم کتاب بخونم بهتره. کاش قبل از اینکه وارد این تالار می شدیم از مون تست پیش نیاز این تالارو می گرفتن. من اصلا نوفهمم.

javaphantom
پنج شنبه 11 اسفند 1384, 09:48 صبح
سوال: چه جوری می تونیم کاری کنیم که فقط یک باز از یک کلاس نمونه بتوان تعریف کرد؟
راهنمای singelton pattern
سوال : چه گونه می توان کاری کرد که بتوان اصلا از یک کلاس هیچ نمونه ای تعریف نکرد؟

magina
پنج شنبه 11 اسفند 1384, 17:26 عصر
خوب یعنی پیشنهاد و سوالات من به هیچ دردی نمی خورد. همه بعنوان پیش فرض در کتاب هست.
واقعا راست میگی پس من برم کتاب بخونم بهتره. کاش قبل از اینکه وارد این تالار می شدیم از مون تست پیش نیاز این تالارو می گرفتن. من اصلا نوفهمم.
با سلام
:خجالت: :خجالت: :خجالت: :خجالت: :خجالت: :خجالت:
چه زود بهتون برمی خوره !
به خاطر این این حرفو زدم که زیاد گیر مطالب نظری نباشیم و بتونیم همراه حرفایی که می زنیم مثالای عملی برنامه نویسی بزنیم !
سوالای شما هم خیلی ارزشمند هستن به شرطی که خودتون شروع به طرح و حل اونا بکنین تا بقیه هم با اونا آشنا بشن.
همه چیز هم به طور پیش فرض تو کتاب نیس ، فقط مطالب اساسی هستش .
اگه از دست من ناراحت شده باشینم باید ببخشین :متعجب: :خجالت: :گریه: :گریه: :گریه:

magina
پنج شنبه 11 اسفند 1384, 17:29 عصر
من خودم یک سؤال دارم !! چه طور می توان مسنجری برای سایت قرار داد که باز دیدکنده سؤال یا نظر خود را در آن نوشته و پس از فرستادن مطالبش اتوماتیک و بلافاصله در سایت ما قرار گیرد. پیشاپیش از راهنمایی شما متشکرم

دوست عزیز pywsite لطفا پست بی معنی نکن !

در ضمن اون چیزی که شما می گید بهش مسنجر سایت نمی گن !

با سلام
احتمالا منظورشون یک Forum بوده !

magina
پنج شنبه 11 اسفند 1384, 17:31 عصر
سوال: چه جوری می تونیم کاری کنیم که فقط یک باز از یک کلاس نمونه بتوان تعریف کرد؟
راهنمای singelton pattern
سوال : چه گونه می توان کاری کرد که بتوان اصلا از یک کلاس هیچ نمونه ای تعریف نکرد؟
با سلام
میتونی برای ما تازه کارا یه کم بیشتر توضیح بدی :تشویق:

javaphantom
جمعه 12 اسفند 1384, 00:18 صبح
دوست عزیز سلام به من اصلا بر نخورد. می دونی چرا؟ چون من می خوام دونستهام رو کامل کنم.
طرح سولات من از این نیست که من به آنها واقف نیستم فقط می خوام بیشتر یاد بگیرم. چون می دونم خیلی ها بیشتر از من بلد هستند.
اما سوال من خیلی راحته. فرض کن یک کلای به نام MyClass داری و می خواهی هرکسی فقط بتونه یک بار از این کلاس یک نمونه تعریف کنه یعنی یک بار از این کلاس بتونه new کنه؟ چی کار می کنی؟ چه جوری جلوی طرفتو می گیری.؟
دومیش انیکه فرض کن به طرفت اصلا اجازه ندی که بتونه از کلاست یک نمونه تعریف کنه؟ یعنی نتونه از کلاست new بکنه؟ جوابه اینو می دم تا بفهمی که چقدر کار آسونه. کلاستو از نوع private تعریف کن (constructore) منظورم دیگه هیچ کس نمی تونه از کلاست new بکنه.
اما اولیش به عهده خودتون ببینم شما ها چی فکر می کنید.
جوابشو به زوردی براتون می نویسم و کاربرد جفتشون در برنامه نویسی هم توضیح می دم
بای بای

javaphantom
جمعه 12 اسفند 1384, 12:06 عصر
با سلام به اساتیت محترم
اگر فکر می کنید که سوالات من بدرد نمی خوره ، سنگینه یا غیر قابل فهمه به من بگین. همانجور که گفتم من خودم بیشتر از شما نیاز به آموزش دارم.
می خواهین در مورد کلاسها در جاوا و ++c #C یک مروره مختصر بکنیم و تفاوتهای آنها رو برسی کنیم.
تفاوت constructor و destructor رو باهم در دو زبان مرور کنیم و با یک قسمت جدید بنام garbage collector در جاوا آشنا بشیم.؟ بعد از او به سراغ filed properties method و انواع آن بریم.؟ یا همه در این امر متخصص هستین؟ چطور بریم اصلا سراغ GUI Desighning with AWT & Swing ؟

rezaTavak
جمعه 12 اسفند 1384, 12:37 عصر
سلام

به نظر من دو موضوع مهم است:

یک همان کار گرافیکی یا کنترلهای گرافیکی.
دوم کار بانک اطلاعاتی.

magina
جمعه 12 اسفند 1384, 15:29 عصر
با سلام به اساتیت محترم
اگر فکر می کنید که سوالات من بدرد نمی خوره ، سنگینه یا غیر قابل فهمه به من بگین. همانجور که گفتم من خودم بیشتر از شما نیاز به آموزش دارم.
می خواهین در مورد کلاسها در جاوا و ++c #C یک مروره مختصر بکنیم و تفاوتهای آنها رو برسی کنیم.
تفاوت constructor و destructor رو باهم در دو زبان مرور کنیم و با یک قسمت جدید بنام garbage collector در جاوا آشنا بشیم.؟ بعد از او به سراغ filed properties method و انواع آن بریم.؟ یا همه در این امر متخصص هستین؟ چطور بریم اصلا سراغ GUI Desighning with AWT & Swing ؟
با سلام
ما مشتری تمام مطالبی هستیم که یک نفر شروع کنه و از اول توضیح بده و تا آخر ادامه بده :تشویق:

javaphantom
جمعه 12 اسفند 1384, 17:24 عصر
بریم سر محیط گرافیکی یا نه؟ اگر 5 نفر بیشتر بشین شروع می کنم کار با محیط گرافیکی و بعد از اون کار با بانک اطلاعاتی.
1. GUI Design with AWT & Swing
Event Handeling
در آخر Java Database Connectivity (JDBC
اگر 5 نفر واقعا خواهان بودن من شروع می کنم درس دادن تمام پیش نیازشم به عهده خودتون.
اگر موافق هستید بیگید شروع کنیم.

rezaTavak
جمعه 12 اسفند 1384, 20:26 عصر
سلام

من اولیش باشم؟

magina
جمعه 12 اسفند 1384, 23:50 عصر
بریم سر محیط گرافیکی یا نه؟ اگر 5 نفر بیشتر بشین شروع می کنم کار با محیط گرافیکی و بعد از اون کار با بانک اطلاعاتی.
1. GUI Design with AWT & Swing
Event Handeling
در آخر Java Database Connectivity (JDBC
اگر 5 نفر واقعا خواهان بودن من شروع می کنم درس دادن تمام پیش نیازشم به عهده خودتون.
اگر موافق هستید بیگید شروع کنیم.
با سلام
من هم مشتری دوم

persianshadow
شنبه 13 اسفند 1384, 00:24 صبح
آقا من با همین تعداد هم همین مطالب رو می گم ! مشتری نبود !

بابا بی خیال مگه اینجا کلاس درسه ! ببینید دوستان عزیز ما اگه چیزی رو بلد باشیم بسادگی

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

خط و نشون بکشیم. من همونطور که قول داده بودم تویه بخش نکات شروع به نوشتن کردم

و می نویسم که حتی اگه 2 سال دیگه یه نفر اومد تویه وب یه چیزی جستجو کرد اشکش در نیاد

که مطلب فارسی گو ؟ به هر حال پیروز باشید

3tareh
شنبه 13 اسفند 1384, 00:26 صبح
سلام
من هم مشتری سوم ولی خواهشاً کامل توضیح بدین

javaphantom
شنبه 13 اسفند 1384, 01:08 صبح
بلکه کلاس درسه
اگر شما بلد هستید بارها و بارها گفتم شروع کنید من تشنه یاد گیری هستم. اگرم فکر می کنید که دونسته های خودتونو نموتیند انتقال بدید پس حداقل کمک من کنید. من رو نهی نکنید من ادعایی ندارم شما شروع به گفتن کنید. من منتظرم
جناب persianshadow چاکرتم هستیم

azizi-ra
شنبه 13 اسفند 1384, 07:31 صبح
جناب استاد javaphantom . لطفا شروع کنید ما هم در خدمتتون هستیم.
در مورد singleton design pattern هم فکر کنم برای این کلاس یک کم زود باشه.
با تشکر

javaphantom
شنبه 13 اسفند 1384, 14:21 عصر
با سلام، اولا من استاد نیستم من هیچی نیستم تعارف نیست. دوما از مدیر محترم این تالا خواهش میکنم اگر فکر میکنند که من از حد خودم تجاوز کردم یا مطالب به درد نخوره یا اشتباه داره به من خصوصی میل بزنندو من با سرافرازی از این مجموعه خارج بشم. مرسی ومتشکرم. سوما در جوابه دوست عزیز جناب persianshadow بگم نوشتن یک مطلب درست برای من خیلی وقت می بره و برام مهمه که بدونم که چند نفر برای وقتی که من صرف می کنم ارزش قائل میشوند.
مقدمه:
Graphical User Interface (GUI) نشان دهنده محیط هایی هستند که بصورت مصور می باشند. (visual program). در این نوع محیط های برنامه نویسی اجزایی وجود دارندکه از قبل در کتابخانه زبان آن میحط گنجانده شده تا برنامه نویس با استفاده از آن اجزا سریع بتونه یک محیط گرافیکی رو بسازه. مثال: خود ویندوز شما ، برازر (browser) .
برای یک فریم (frame) که ممکنه به چند قسمت تقسیم شده باشه یک منو بار، چند دکمه ...!
وجود داره ویک نمونه بارز از GUI می باشد.
کلاس swing :
در جاوا کلاسیکه سازنده اجزا میحط GUI شما هستند همین کلاس swing می باشد که تمام اجزای مورد نیاز ما (دکمه، فریم،منوبار، تکست بار...) همه در package یا همان کتابخانه javax.swing قرار دارد.
نکته: در اول برنامه باید این package را با دستور import صدا کنیم.
نکته: تمام اجزایی که در این package هستند مخصوص محیط GUI جاوا به حساب می آیند.
اما محیط استاندار GUI و اجزایی که در یک platform دیگر وجود دارند مانند (Windows) تمام این اجزا در package دیگری به نام java.awt که کلا آنها رو AWT (Abstract Windowing Toolkit) گفته می شوند وجود دارد. وقتی یک برنامه جاوا اجرا میشود با امکان استفاده از AWT GUI دریک platform یی بغییر از جاوا تمام اجزای تعریف شده مثل دکمها، فریم ووو همه بصورت استاندارد آن سیستم پیاده می شوند.
نکته: می توانید برنامه خودتون رو از لحاظ گرافیکی توری بنویسید که وقتی در windows اجرا میشود حالت windows داشته باشد، اگر در linux یا unix یا در apple ووو بنویسید شبیه به محیط همان platform از لحاظ گرافیکی باشد. (با حاله نه؟) این یکی از قدرتهای جاواست. C# چی می تونه بگه! ؟
نکته: اجزایی که در کلاس swing هستند بسیار از لحاظ حجم کم و انعطاف پذیری بالایی هستند چون مخصوص برای محیط جاوایی هستند.(مثال ها بیشتر در این محیط زده خواهد شد) .
نکته : کسانیکه با package java.swing یا package java.awt کار می کنند باید با
کلاسهای Component,Container,JComponent که هر کدام از آنها تعریف کننده شکل یک جزء در اجزای Swing هستند آشنا باشد. در مثال بیشتر خواهید دید.
class Componet : صفتهای مشترک و رفتارها زیر کلاس خودش را تعریف میکند.
class Container : مجموعه ای از روابط اجزا بایک دیگرو توضیح میده.
class JComponet : پدر بیشتر اجزاها در Swing هست.
با کمی آشنایی می خواهیم تمام تئوریهای خودمونو به صورت عملی اجرا کنیم.
اولین فرم جاوایی خودمون را درست می کنیم. 
نکته: از آنجایی که من آگاه نیستم که شما با چه محیطی دستورات جاوایی را اجرا می کنید، لذا من پیشنهاد می کنم که در یک notepad دستورات زیرو بنویسید که بیشتر با قضیه درگیر بشید، تا با استفاده از محیطهای گوناگون مثل JBuilder ووو خودمونو تنبل کنیم. معماری کار مهمه. باز این نظر منه.
مثال : یک فریم بسازید یا همان پنجره؟
یک فایل به نام MyFrame.java در notepad درست کنیدو بنویسید؟

javaphantom
شنبه 13 اسفند 1384, 14:25 عصر
import javax.swing.*;
public class MyFrame {
public MyFrame() {
JFrame jFrame = new JFrame("MyFrame");
jFrame.setSize(200,200);
jFrame.setLocation(300,200);
jFrame.setVisible(true);
}
public static void main(String[] s) {
new MyFrame();
{
{

javaphantom
شنبه 13 اسفند 1384, 14:29 عصر
توضیحات:
در خط اول برنامه همانطور که گفته شد با دستور import به کتابخانه یا package مورد نظرمون که همان swing است دسترسی پیدا کردیم.
درخط دوم کلاسی که حتما باید با نام فایلمون یکی باشد را ایجاد کردیم
در خط سوم سازنده کلاس را ایجاد کردیم
در خط چهارم نمونه ای با نام jFrame از کلاس JFrame ساختیم که یکی از سازنده های این کلاس این است که یک آرگومان بصورت رشته می گیرد که نام پنجره یا هما فریم ما می شود که من همان نام MyFrame رو براش انتخاب کردم.
در خط پنجم از method setSize برای اندازه و ابعاد فریم خودم به دلخواه دو عدد int داده ام. فرم کلی این method به شرح زیر است
public void setSize(int x, int y) بازهم تحقیق بیشتر شود.
خط ششم از method setLocation برای مشخص کرد جای ظاهر شدن پنجرم یا همان فریم استفاده کردم. شکل کلی این method به شرح زیر است
public void setLocation(int x, int y) بازم مطالعه بیشتر شود.
خط هفتم برای ظاهر کردن پنجره یا همان فریم در صفحه است با این دستور که دستور پایانی است پنجره یا فریم ساخته شده ظاهر می شود. فرم کلی method به شرح زیر است
public void setVisible(Boolean b)
در تابع main ازکلاس درست شده یک new گرفتم و فرم تشکیل شد. بصورت جاوایی نه windows.
نکته: وقتی که شما می خواهید با کلیک کرد بروی علامت ضربدل که برروی پنجره شما هست به بستن یا خاتمه برنامه قصد کنید می بینید که پنجره شما بسته می شود ول همچنان شما هنور از برنامه خارج نشده اید. اگر در محیطی خارج از JBulder ووو هستید با زدن کلیدهای CTRL+C از برنامه خارج می شوید. اگر هم در محیط خواصی هستید اون محیط به طریقی کنترل کارو در دست می گیرد.
علت بعد توضیح داده میشود از شما هم خواننده خوب دلم مخواهد نظر بدهید.
تا بعد کم کم به فریم خود اجزایی اضافه کنیم و و و.
نظرات سوالات شما به همه کمک می کنه که زودتر و بهتر پیشرفت کنیم.

azizi-ra
شنبه 13 اسفند 1384, 14:41 عصر
دستت درد نکند . تشکر

javaphantom
دوشنبه 15 اسفند 1384, 14:27 عصر
برای خروج از برنامه و بستن پنجره از کد زیر استفاده میکنیم.
کلا برنامه زیر یک پنجره باز می کند و بازدن رو دکمه ضربدل از پنجره بسته می شود.
اگر در مورد این بخش سوالی ندارید دفعه بد در مورد layout ها و panel ها صحبت می کنیم و کم کم به فریم خودمون component اضافه می کنیم

javaphantom
دوشنبه 15 اسفند 1384, 14:31 عصر
public class Test {
javax.swing.JFrame jframe;
public Test() {
try{
init();
}
catch (Exception e) {

}
}
private void init() throws Exception {
jframe = new JFrame("test");


// jframe
//
Container content = this.jpanel;
jframe.setBounds(200,100,200,300);
jframe.setDefaultCloseOperation(this.jframe.EXIT_O N_CLOSE);
jframe.show();
}

//main
public static void main(String[] st) {
new Test();
{
{]

magina
دوشنبه 15 اسفند 1384, 16:00 عصر
با سلام
بهتر است دوستان بعد از نوشتن بلوکهای برنامه در این تاپیک آنها را علاوه بر چپ چین کردن به حالت EN نیز در آورند که خواندن آنها راحت تر باشد . :تشویق:

persianshadow
سه شنبه 16 اسفند 1384, 12:44 عصر
سلام

من یه فایل پی دی اف در مورد انواع Layout ها در جاوا گذاشتم. شاید مفید باشه .

3tareh
سه شنبه 23 اسفند 1384, 22:14 عصر
سلام
چرا متوقف شدین؟ ما منتظریم!!!:چشمک:

magina
سه شنبه 23 اسفند 1384, 22:53 عصر
با سلام
ببخشین یه کم نبودم :خجالت:
من یه چند روز بود که مسافرت بودم و به اینتر نت دسترسی نداشتم .
تازه امروز اومدم . برم ببینم چه خبره :تشویق:

magina
سه شنبه 23 اسفند 1384, 22:58 عصر
با سلام
اولش من می خواستم جاوا رو با مثالای ساده و عملی اینجا شروع کنیم ، البته طوری که به درد آدمای تازه واردی مثل من هم بخوره . بعدش دوستان که مطمئنا تجربه عملی و سواد نظری شون خیلی بالاست ، لطف کردن و این زحمت را به عهده گرفتن .
فقط می خواستم خواهش کنم مطالب و مثالها ساده باشن و مقدماتی و دیگه اینکه وقفه خیلی طولانی در ارائه مطالب نباشه .

magina
جمعه 26 اسفند 1384, 00:12 صبح
با سلام
یه پیشنهاد :
یک کلاس درس با ده نفر شاگرد که هر کدام باید در دو درس نمره بگیرند.

3tareh
چهارشنبه 02 فروردین 1385, 15:04 عصر
سلام
چه جور کلاسی؟ استاد کی هست؟
به هر حال من برای یاد گرفتن جاوا به هر صورتی پایه ام!!!

magina
یک شنبه 06 فروردین 1385, 22:41 عصر
سلام
چه جور کلاسی؟ استاد کی هست؟
به هر حال من برای یاد گرفتن جاوا به هر صورتی پایه ام!!!
با سلام
منظورم طراحی یک برنامه برای این کلاس بود که بتونه تعداد دانش آموزان ، اسامی آنها ، نمرات آنها و معدل هر کدام آنها و در نهایت جست و جوی بین آنها را انجام بدهد .

mfarzan2004
جمعه 11 فروردین 1385, 00:02 صبح
سلام منم تازه می خوام شروع به کار کنم ممنون میشم
اگه کمکم کنین
مر30

magina
جمعه 11 فروردین 1385, 08:37 صبح
سلام منم تازه می خوام شروع به کار کنم ممنون میشم
اگه کمکم کنین
مر30
با سلام
بهترین کمک اینه که شروع بکنین به نوشتن :تشویق:

jmajid
دوشنبه 25 اردیبهشت 1385, 15:21 عصر
با سلام
من یک تازه کارم و نمی خواهم خدمت اساتید بی احترامی کنم
خیلی وقته که یک سوال مطرح شده وکسی جواب نداده
شاید جواب سوالی که مطرح شده خیلی ها بدونن ولی می خواستم چیزی رو که بلدم بگم
در کلاسی که می خواهیم نشود تعدادی آبجکت بیشتر از آن ساخت
اینجوری تعریف می کنیم مثلا

jmajid
دوشنبه 25 اردیبهشت 1385, 15:25 عصر
public class Myclass {

private static int counter = 0;


private Myclass() {
}

public static Myclass getMyclass(){
counter ++;
if (counter > 2) {
System.out.println("Exceeded ");
return null;
}
else
return new Myclass();
}

}
و در کلاس اصلی باید اینجوری آبجکت رو بسازیم

// in main class
Myclass obj1=Myclass.getMyclass();

jmajid
دوشنبه 25 اردیبهشت 1385, 15:26 عصر
در مورد کلاس هم من هم هستم
اگه میشه مبحث jdbc
رو زود تر بگید