Java
46 subscribers
42 photos
36 files
137 links
Download Telegram
همون طور که در این شکل مشخص هست وقتی experssion ی در مقابل switch قرار میگیره در صورتی که با مقدار case ی برابر باشه قطعه کدی (statement) که مربوط به اون case میشه رو اجرا میکنه، اگر بعد از این statement دستور break باشه به طور کامل از switch میاد بیرون و دیگه چیزی در switch اجرا نمیشه، اما اگر دستور break وجود نداشته باشه، بدون چک کردن case های بعدی، statement های بعدی اجرا میشن و در آخر هم statement مربوط به default اجرا میشه
البته اگر experssion با هیچ کدوم از اون case ها برابر نباشه باز هم statement مربوط به default اجرا میشه
public class SwitchExample {  

   public static void main(String[] args) {  

      int number=20;  

      switch(number){  

         case 10: 

            System.out.println("10");

            break;  

         case 20: 

            System.out.println("20");

            break;  

         case 30: 

            System.out.println("30");

            break;  

         default:

            System.out.println("Not in 10, 20 or 30");  

      }  

   }  

}  

--------------------------------------------

Output:

20


در این مثال مقدار number فقط با case دوم برابر هست، پس کد مربوط به اون اجرا میشه و عدد ۲۰ چاپ میشه و چون بعدش break وجود داره از switch میاد بیرون

public class SwitchExample2 {  

   public static void main(String[] args) {  

      int number=20;  

      switch(number){  

         case 10: 

            System.out.println("10");  

         case 20: 

            System.out.println("20");  

         case 30: 

            System.out.println("30");  

         default:

            System.out.println("Not in 10, 20 or 30");  

      }  

   }  

}

--------------------------------------------

Output:

20

30

Not in 10, 20 or 30


در این مثال مقدار number با case دوم برابره و باز هم عدد ۲۰ چاپ میشه، اما چون دستور break وجود نداره، بقیه statement ها تا آخر اجرا میشه
Java For Loop


در جاوا برای تکرار کردن یک بخش از کد از for استفاده می‌کنیم، تعداد تکرار در این نوع loop مشخص هست
دو نوع for پر کاربرد وجود داره

- Simple For Loop
- For-each or Enhanced For Loop

Java Simple For Loop

Syntax:


for(initialization;condition;incr/decr){  

   //code to be executed  

}

در این نوع for سه تا کار میشه انجام داد، مقداردهی اولیه (initialization)، چک کردن یک شرط (condition) و انجام یک عملیات (incr/decr)
در ابتدا init اجرا میشه و بعد از اون شطر چک میشه اگر false باشه که for ما skip میشه ولی اگر true باشه کدهایی که در statement وجود داره اجرا میشه و در آخر عملیات مون اجرا میشه و دوباره شرط چک میشه و...
public class ForExample {  

   public static void main(String[] args) {  

      for(int i=1;i<=10;i++){  

         System.out.println(i);  

      }  

   }  

}

--------------------------------------------

Output:

1

2

3

4

5

6

7

8

9

10


Infinitive For Loop


اگر در for هیچ کدوم از اون ۳ بخش اصلی for رو ننویسیم
یک for بینهایت خواهیم داشت

public class ForExample {  

   public static void main(String[] args) {  

      for(;;){  

         System.out.println("infinitive loop");  

      }  

   }  

}

--------------------------------------------

Output:

infinitive loop

infinitive loop

infinitive loop

infinitive loop

infinitive loop

ctrl+c


برای خروج از برنامه دکمه‌های c و ctrl رو میزنیم
Java For-each Loop


اما نوع دوم for در جاوا برای چرخیدن در یک آرایه (array) و یا یک مجموعه (collection) کاربرد داره
در این نوع for بر خلاف نوع اول که از index استفاده می کردیم از اعضای اون ارایه و یا مجموعه استفاده می کنیم، به این صورت که تک به تک اون اعضا خونده میشن تا بتونیم ازشون استفاده کنیم

Syntax:


for(Type var:array){  

   //code to be executed  

}


در اینجا منظور از Type همون نوع اعضای آرایه ست

public class ForEachExample {  

   public static void main(String[] args) {  

      int arr[]={12,23,44,56,78};  

      for(int i:arr){  

         System.out.println(i);  

      }  

   }  

}

--------------------------------------------

Output:

12

23

44

56

78
Java While Loop


عملکرد while هم به شکل for هست، به این صورت که برای تکرار بخشی از کد کاربرد داره، اما با این تفاوت که ما تعداد دفعات این تکرار رو نمی دونیم

Syntax:

while(condition){
//code to be executed
}
فقط در صورت true بودن شرط statement اجرا خواهد شد
public class WhileExample {  

   public static void main(String[] args) {  

      int i=1;  

      while(i<=10){  

         System.out.println(i++);    

      }  

   }  

}

--------------------------------------------

Output:

1

2

3

4

5

6

7

8

9

10


Java Infinitive While Loop


اجرای while بی‌نهایت

public class WhileExample2 {  

   public static void main(String[] args) {  

      while(true){  

         System.out.println("infinitive while loop");  

      }  

   }  

}

--------------------------------------------

Output:

infinitive while loop

infinitive while loop

infinitive while loop

infinitive while loop

infinitive while loop

ctrl+c


برای خروج از برنامه دکمه‌های c و ctrl رو میزنیم
Java do-while Loop


عملکرد do-while خیلی شبیه به while هست اما با این تفاوت که در اینجا حداقل یکبار statement اجرا میشه و بعد از اون شرط چک میشه

Syntax:

do{  

   //code to be executed  

} while (condition);
در ابتدا statement اجرا میشه و بعد از اون شرط چک میشه در صورت true بودن شرط این روند دوباره تکرار میشه
public class DoWhileExample {  

   public static void main(String[] args) {  

      int i=1;  

      do{  

         System.out.println(i++);  

      }while(i<=10);  

   }  

}

--------------------------------------------

Output:

1

2

3

4

5

6

7

8

9

10


Java Infinitive do-while Loop


و اجرای do-while بی‌نهایت

public class DoWhileExample2 {  
public static void main(String[] args) {
do{
System.out.println("infinitive do while loop");
}while(true);
}
}

--------------------------------------------

Output:

infinitive do while loop
infinitive do while loop
infinitive do while loop
ctrl+c
Java Break Statement


برای خارج شدن از loop و switch می توان از دستور break استفاده کرد، اما معمولا به همراه یک شرط در loop و یک case در switch مثل https://t.me/java_me/95 استفاده میشه
وجود یک شرط در loop همراه با break امکان خروج از loop در شرایط خاص (همون شرط مون) رو بهمون میده
Java Break Statement with Loop


public class BreakExample {  

   public static void main(String[] args) {  

      for(int i=1;i<=10;i++){  

         if(i==5){  

            break;  

         }  

         System.out.println(i);  

      }  

   }  

}

--------------------------------------------

Output:

1

2

3

4


در این مثال for در صورتی index مون (همون i) به ۵ میرسه (یعنی شرط مون برقرار هست)، دستور break اجرا میشه و از for خارج میشه

Java Break Statement with Inner Loop


دقت کنید که در inner loop یا (for تو در تو) در صورتی که دستور break توی for داخلی باشه، در صورت برقرار بودن شرط فقط for داخلی break میشه

public class BreakExample2 {  

   public static void main(String[] args) {  

      for(int i=1;i<=3;i++){    

         for(int j=1;j<=3;j++){    

            if(i==2&&j==2){    

               break;    

            }    

            System.out.println("In i="+i+" j="+j);    

         }    

         System.out.println("Out i="+i);    

      }    

   }  

}

--------------------------------------------

Output:

In i=1 j=1

In i=1 j=2

In i=1 j=3

Out i=1

In i=2 j=1

Out i=2

In i=3 j=1

In i=3 j=2

In i=3 j=3

Out i=3


در این مثال در صورت true بودن if برنامه فقط از for داخلی بیرون خواهد آمد
Java Continue Statement


برای skip کردن در loop می توان از دستور continue استفاده
به این ترتیب میتونیم اجرا شدن کد برای یکی از index ها رو skip کنیم
این دستور هم مثل دستور break همراه با یک شرط توی for میاد

public class ContinueExample {  

   public static void main(String[] args) {  

      for(int i=1;i<=10;i++){  

         if(i==5){  

            continue;  

         }  

         System.out.println(i);  

      }  

   }  

}

--------------------------------------------

Output:

1

2

3

4

6

7

8

9

10


در این مثال وقتی index مون به ۵ میرسه اجرای عملیات skip میشه به بعدی

Java Continue Statement with Inner Loop


دستور continue در for تو در تو

public class ContinueExample2 {  

   public static void main(String[] args) {  

      for(int i=1;i<=3;i++){    

         for(int j=1;j<=3;j++){    

            if(i==2&&j==2){    

               continue;    

            }    

            System.out.println("In i="+i+" j="+j);    

         }    

         System.out.println("Out i="+i);    

      }    

   }  

}

--------------------------------------------

Output:

In i=1 j=1
In i=1 j=2
In i=1 j=3
Out i=1
In i=2 j=1
In i=2 j=3
Out i=2
In i=3 j=1
In i=3 j=2
In i=3 j=3
Out i=3
Java Comments


برای قرار دادن توضیحات در کدهای جاوا میتوان نوشته‌ها رو کامنت کرد، این نوشته ها نه در compiler و نه در interpreter (زمان اجرای جاوا) اجرا نخواهند شد
۳ نوع کامنت در جاوا وجود داره

- Single Line Comment
- Multi Line Comment
- Documentation Comment

1) Java Single Line Comment

این نوع کامنت فقط در یک کد کاربرد داره و نوشته‌های بعد از اون بصورت توضیحات در خواهند اومد

Syntax:
//This is single line comment


2) Java Multi Line Comment

امکان کامنت کردن چندین خط رو به ما میده

Syntax:
/* 

This  

is  

multi line  

comment 

*/


3) Java Documentation Comment

این نوع کامنت امکان ساخت documentation از روی این توضیحات رو به ما میده

Syntax:
/** 

This  

is  

documentation  

comment 

*/


Example:
/** The Calculator class provides methods to get addition and subtraction of given 2 numbers.*/  

   public class Calculator {  

   /** The add() method returns addition of given numbers.*/  

   public static int add(int a, int b){return a+b;}  

   /** The sub() method returns subtraction of given numbers.*/  

   public static int sub(int a, int b){return a-b;}  

}


در اینجا، هم برای کلاس و هم برای متودهای کلاس، کامنت نوشته شده
بعد کامپایل این کلاس، میتوان از javadoc برای ساخت documentation استفاده کرد

javac Calculator.java

javadoc Calculator.java


این کار باعث ساخته شدن فایل‌های html ی میشه که توضیحات توی کلاس رو با خودش داره
Java OOPs Concepts

OOPs (Object Oriented Programming System)
آبجکت (شی) به معنی هر شی‌ای که در دنیای واقعی وجود داره هست، مثل مداد، میز و یا هر چیز دیگه‌ای
و OOP به معنای یک راه حل برای طراحی برنامه ها از طریق objectها و classهاست، که در واقع ۶ مبحث اصلی داره
- Object
- Class
- Inheritance
- Polymorphism
- Abstraction
- Encapsulation

Object

هر موجودیتی که رفتار و حالتی داشته باشه رو می تونیم به عنوان آبجکت در نظر بگیریم

Class

در واقع کلاس مجموعه‌ای از objectهاست

Inheritance

ارث بری در واقع زمانی اتفاق می افته که یک object ویژگی‌ها و رفتارهایی رو از parent object به ارث می بره (به دست میاره)
اینکار باعث میشه از کدها بتونیم دوباره استفاده کنیم، همچنین inheritance قابلیت runtime polymorphism رو به ما میده

Polymorphism

پلومورفیسم یا چندریختی به ما اجازه میده تا یک کار رو از روش‌های مختلفی انجام بدیم
مثلا کشیدن یک شکل از روش‌های مختلف
در جاوا برای انجام polymorphism از method overloading و method overriding استفاده میکنیم

Abstraction

شاید در فارسی بشه به این ویژگی چکیدگی گفت
و به معنی مخفی کردن جزئیات داخلی و نشان دادن قابلیت هاست
در جاوا برای انجام abstraction از abstract class و interface استفاده می کنیم

Encapsulation

بسته‌بندی کردن کد توی یک واحد رو کپسوله کردن میگن، java class یک مثال از این کار هست
Java Naming conventions


نام‌گذاری class, package, method و ... در جاوا طبق یک استانداردی انجام میشه، هرچند که رعایت این استانداردها الزامی نمی باشد اما این کار باعث آسان تر شدن خوندن کد توسط خود برنامه نویس و بقیه برنامه نویس ها میشه

- class name
یک اسم که با حرف بزرگ شروع میشه، مثل String, Color, Button, System و ...

- interface name
یک صفت که با حرف بزرگ شروع میشه، مثل Runnable, Remote, ActionListener و ...

- method name
یک فعل که با حرف کوچک شروع میشه، مثل actionPerformed, main, print, println و ...

- variable name
با حرف کوچک شروع میشه، مثل firstName, orderNumber و ...

- package name
تمامی حروف کوچک هستن، مثل java, lang, sql, util و ...

- constants name
تمامی حروف بزرگ هستن، مثل RED, YELLOW, MAX_PRIORITY و ...

CamelCase in java naming conventions


نام گذاری class, interface, method, variable در جاوا به صورت camelCase هست به این صورت که اگر یه اسم از ترکیب دوتا کلمه باشه، کلمه دوم با حرف بزرگ شروع میشه مثل firstName, ActionEvent و ...
Object and Class in Java


یک تعریف دیگه ای از object و class هست که در واقع میگه object یک موجودیت فیزیکی و همچنین یک موجودیت منطقی هست اما class فقط یک موجودیت منطقی هست

Object in Java


هر موجودیتی که رفتار و حالتی داشته باشه رو به عنوان object میشناسیم، مثل میز، مداد، ماشین و ... . میتونه فیزیکی و یا منطقی باشه (محسوس و نامحسوس). سیستم بانکی رو میشه به عنوان یک موجودیت نامحسوس شناخت.

یک object سه تا ویژگی داره
- state
نشان دهنده دیتای object هست
- behavior
نشان دهنده رفتار و عملکرد یک object
- identity
هویت یک object معمولا با یک id منحصر به فرد (unique) مشخص میشه که در واقع برای کاربران خارجی قابل رویت نیست، و توسط خود jvm برای شناسایی object ها از هم دیگه استفاده میشه

برای مثال مداد یک object هست که یه اسم داره و یه رنگ (رنگ و اسم به عنوان state هستن)
از مداد برای نوشتن استفاده میشه (نوشتن به عنوان behavior هست)

Object is an instance of a class

کلاس یک قالب و یا یک طرح برای ساخت یک object هست، در واقع object یه نمونه‌ای از یک class هست

تعریف‌هایی که برای یک object وجود داره
- یک موجودیت در دنیای واقعی
- یک موجودیت در زمان اجرا (run time)
- یک موجودیت که دارای رفتار و حالت هست
- یک نمونه از یک class

Class in Java


کلاس یک مجموعه‌ای از object هاست که دارای ویژگی های مشترکی هستن، همچنین کلاس یک قالب و یا یک طرح برای ساخت یک object هست. class یک موجودیت منطقی هست و نمی تونه فیزیکی باشه

یک class تشکیل شده از
- fields
- methods
- constructors
- blocks
- nested class and interface

Syntax to declare a class:

class <class_name>{  
field;
method;
}


Instance variable in Java
متغیرهایی که در داخل یک class و خارج یک method تعریف میشن رو به عنوان instance variable میشناسیم
این نوع متغیرها مموری‌ای در زمان کامپایل نمیگیرن و فقط در زمان اجرا (runtime) وقتی که object ایجاد میشه مموری میگیره، بخاطر همین بهش میگن instance variable

Method in Java
متود در جاوا برای نمایش رفتار یک object بکار میره و باعث بهینه شدن کد میشه و به کد قابلیت استفاده مجدد رو میده

new keyword in Java
کلمه new در جاوا باعث میشه در زمان runtime برای ساخت object مموری اختصاص پیدا کنه، این مموری اختصاص پیدا شده در Heap memory قرار داره.
Object and Class Example

File: Student.java
class Student{  
int id;//field or data member or instance variable
String name;

public static void main(String args[]){
Student s1=new Student();//creating an object of Student
System.out.println(s1.id);
System.out.println(s1.name);
}
}

--------------------------------------------
Output:
0
null

در این مثال با استفاده از new از کلاس Student یک آبجکت می سازیم به اسم s1
دقت کنید که متود main در خود کلاس Student هست

File: TestStudent1.java
class Student{  
int id;
String name;
}
class TestStudent1{
public static void main(String args[]){
Student s1=new Student();
System.out.println(s1.id);
System.out.println(s1.name);
}
}

--------------------------------------------
Output:
0
null

تفاوت این مثال در این هست که ما از یک کلاس دیگه برای متود main مون استفاده کردیم، که نسبت به مثال قبلی روش بهتری هست

دقت کنید که ما هم می تونیم چندتا کلاس را در جاوا فایل‌های متفاوتی داشته باشیم و هم اینکه در یک جاوا فایل اونا رو داشته باشیم. در هر دو روش در زمان compile برای هر کلاس، فایل های متفاوتی (class.) ساخته خواهند شد