تهران - اسلامشهر

Tumblr


آموزش جاوا

آموزش جاوا (7)

آموزش جاوا - جلسه ششم - تابع

دانلود رایگان , آموزش جاوا

تابع در جاوا


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

public class Main {
    public static void foo() {
        // Do something here
    }
}

foo یک متد است که در کلاس Main تعریف شده است. چیزهای زیادی را در مورد foo می توانید تعریف کنید

  • static به این معنی است که به کلاس Main تعلق دارد، نه یک نمونه جدا از کلاس اصلی یا Main. این بدین معنی است که ما می توانیم در کلاس دیگری همچون Main.foo() آنرا فراخوانی کنیم.
  • void به این معنی است که تابع مقدار بازگشتی ندارد. متدها می توانند یک مقدار را برگردانند که باید در متد تعریف شود. با این حال شما می توانید با استفاده از return برای خروج از متد بهره ببرید.
  • این متد هیچ آرگومانی را دریافت نمی کند، اما البته متدهای جاوا می توانند آرگومانهای خود را دریافت کنند، همانطور که در ادامه خواهیم دید..

آرگومانها

همیشه می خواهم بگویم که آرگومان ها برای متدهای جاوا بر اساس مقدار انجام می شوند، اما برخی ممکن است با انتخاب کلمات من مخالف باشند، بنظر من بهترین راه برای توضیح و درک دقیق آن است.

به وسیله مقدار، بدین معنی است که هنگام اجرای متد، آرگومان کپی می شود. بیایید به مثال نگاه کنیم.

public void bar(int num1, int num2) {
    ...
}

در اینجا یک مکان دیگر در کد وجود دارد، جایی که bar فراخوانی می شود.

int a = 3;
int b = 5;
bar(a, b);

شما می توانید در ذهن خود تصور کنید زمانی که bar(a, b) در حال اجراست, این همانند دو خط ابتدای bar که در ادامه نوشته شده است:

int num1 = a;
int num2 = b;

و تنها پس از آن ادامه متد قابل اجراست

این بدین معنی است که مقدار a گرفته می شود و در num1 کپی می شود و b دریافت شده و در num2 قرار میگیرد. تغییر مقادیر num1 و num2 روی a و b تأثیری نمی گذارد.

اگر آرگومان ها اشیاء باشند، قوانین باقی می مانند، اما آن ها کمی متفاوت عمل می کنند. به این مثال توجه کنید:

public void bar2(Student s1, Student s2) {
    ...
}

نحوه استفاده از آن این است

Student joe = new Student("joe");
Student jack = new Student("jack");
bar2(joe, jack);

دوباره ما می توانیم تصور کنیم که دو خط ابتدای bar2 به این شکل است

Student s1 = joe;
Student s2 = jack;

اما زمانی که ما اشیاء را اختصاص می دهیم، کمی متفاوت از اعمال اولیه است. s1 و joe دو منبع متفاوت برای یک شی مشابه هستند. s1 == joe صحیح است. این بدین معنی است که متدهای در حال اجرا روی s1 شی joe را تغییر خواهد داد. اما اگر ما بخواهیم مقدار s1 بعنوان یک منبع تغییر دهیم , هیچ تأثیری روی joe نخواهد گذاشت.

s1.setName("Chuck"); // joe name is now Chuck as well
s1 = new Student("Norris"); // s1 is a new student, different than joe with the name of Norris
// s1 == joe   is not true anymore

متدهای بدون Static

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

متد های بدون static می توانند زمینه ی شیء را دسترسی پیدا کنند و تغییر دهند.

public class Student {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

فراخوانی متد نیاز به شی از نوع Student دارد.

Student s = new Student();
s.setName("Danielle");
String name = s.getName();

Student.setName("Bob"); // Will not work!
Student.getName(); // Will not work!

خلاصه مطلب

  • هر متد جاوا در یک کلاس قرار دارد
  • متد های static به یک کلاس متعلق هستند، در حالی که متد های بدون static به اشیا تعلق دارند
  • همه پارامترها به توابع توسط مقدار منتقل می شوند، محتوای اولیه کپی می شود، در حالی که اشیاء کپی نمی شوند و بعضی می گویند: "انتقال با منابع"

تمرین

متدی با نام printFullName بنویسید که نام کامل یک دانش آموز را نمایش دهد.[...]

ادامه مطلب 0

آموزش جاوا - جلسه پنجم - حلقه تکرار

آموزش جاوا , آموزش رایگان , دانلود رایگان

حلقه تکرار


دو مدل حلقه تکرار در جاوا داریم, for و while.

For

حلقه تکرار For شامل سه قسمت می باشد :

for (int i = 0; i < 3; i++) {}

قسمت اول فقط یکبار اجرا خواهد شد

قسمت دوم حلقه جایی است که ما شرط را در آن می نویسیم, اگر مقدار بازگردانده شده  true بود , جملات دستوری حلقه تکرار اجرا خواهند شد, اگر مقدار بازگردانده شده  false بود, از حلقه تکرار خارج خواهد شد. این شرط بعد از اجرای قسمت اول حلقه تکرار اجرا خواهد شد, سپس هر بار که حلقه تکرار اجرا شود و به پایان برسد یکبار اجرا خواهد شد و شرط مورد نظر بررسی خواهد شد.

قسمت سوم حلقه تکرار آخرین قسمت آن خواهد بود و هر بار که حلقه تکرار اجرا می شود و به پایان می رسد یکبار اجرا خواهد شد.

در این مثال ما حلقه تکراری داریم که سه بار اجرا خواهد شد:

int i = 0;
i < 3 // 0 < 3 = true
      // Inside of loop
i++ // i is now 1
i < 3 // 1 < 3 = true
      // Inside of loop
i++ // i is now 2
i < 3 // 2 < 3 = true
      // Inside of loop
i++ // i is now 3
i < 3 // 3 < 3 = false
      // Loop is done...

ما می توانیم قسمت اول و آخر حلقه تکرار را ننویسیم (هرچند عجیب و غریب خواهد بود), و حلقه تکرار همچنان کار می کند:

for (;i < 5;) {}

برای مواقعی که شبیه به این از حلقه تکرار  while استفاده می کنیم

While

مدل نوشتاری (Syntax) آن خیلی شبیه به حلقه تکرار قبلی است:

while (شرط) {}

شرط داخل پرانتز اولین بار و هر بار پس از پایان دستوران اجرا خواهد شد.اگر مقدار  false برگرداند, حلقه تکرار اجرا نخواهد شد.

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

do {

} while(شرط);

در پایان نیز سمی کالن قرار می دهیم.

Foreach

مدل دیگر از حلقه for به این صورت می باشد. ولی همچنان آنرا for صدا میزنیم,اما زمانی که ما می خواهیم بر روی عناصر درون یک آرایه کار کنیم، می توانیم به سادگی از آن استفاده کنیم:

int[] arr = {2, 0, 1, 3};
for (int el : arr) {
    System.out.println(el);
}

این یک نسخه کوتاه و معادل آن است:

int[] arr = {1, 9, 9, 5};
for (int i = 0; i < arr.length; i++) {
    int el = arr[i];
    System.out.println(el);
}

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

break و continue

این دو کلیدواژه به ما کمک می کند از داخل حلقه تکرار آن را کنترل کنیم. break حلقه تکرار را متوقف می کند و به پایان دستورات انتقال می دهد:

int i;
for (i = 0; i < 5; i++) {
    if (i >= 2) {
        break;
    }
    System.out.println("Yuhu");
}
System.out.println(i);
// Output:
// Yuhu
// Yuhu
// 2

continue یک بار اجرای دستورات داخل حلقه تکرار را رد خواهد کرد. سپس مجدداً از ابتدا دستورات حلقه اجرا خواهد شد.

int i;
for (i = 0; i < 5; i++) {
    if (i >= 3) {
        break;
    }
    System.out.println("Yuhu");
    if (i >= 1) {
        continue;
    }
    System.out.println("Tata");
}
System.out.println(i);
// Output
// Yuhu
// Tata
// Yuhu
// Yuhu
// 3

تمرین

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

[...]

ادامه مطلب 0

آموزش جاوا - جلسه چهارم

آموزش جاوا , آموزش رایگان برنامه نویسی , اندروید , برنامه نویسی اندروید , دانلود رایگان

آرایه ها


در جاوا آرایه ها نیز شیء هستند. ابتدا باید معرفی و سپس ایجاد شوند. برای معرفی متغیری که آرایه ای از اعداد صحیح را در خود نگه میدارد از روش زیر استفاده می کنیم :

int[] arr;

توجه داشته باشید هیچ اندازه ای وجود ندارد، زیرا هنوز آرایه را ایجاد نکرده ایم.

arr = new int[10];

این دستور یک آرایه با طول 10 ایجاد می کند. ما می توانیم طول آرایه را با چاپ آن بررسی کنیم :

System.out.println(arr.length);

ما می توانیم به آرایه دسترسی داشته باشیم و مقادیر آن را تغییر دهیم :

arr[0] = 4;
arr[1] = arr[0] + 5;

آرایه ها در جاوا با اندیس صفر آغاز می شوند. این بدین معنی است که برای دسترسی به اولین عنصر در آرایه از اندیس صفر استفاده می کنیم (e.g: arr[0], دسترسی به عنصر اول آرایه). بنابراین، به عنوان مثال ، آرایه ای که دارای پنج عنصر است آخرین عنصر آن اندیس 4 می باشد.

int[] arr = new int[5];
//دسترسی و ویرایش عنصر اول
arr[0] = 4;

همچنین می توانیم آرایه ای با مقدار اولیه نیز ایجاد کنیم :

int[] arr = {1, 2, 3, 4, 5};

هرگز آرایه را بدون حلقه تکرار چاپ نکنید، این روش چیزی عجیب و غریب چاپ می کند [I@f7e6a96.

تمرین

یک آرایه عددی شامل 5 عنصر ایجاد کنید[...]

ادامه مطلب 0

آموزش جاوا - جلسه سوم

آموزش رایگان جاوا , دانلود رایگان , برنامه نویسی

دستورات شرطی


جاوا برای نتایج دستورات شرطی از نوع داده صحیح و غلط یا بولی استفاده می کند true و false بعنوان نتیجه محاسبه یا مقایسه بازگردانده می شود. بطور مثال :

int a = 4;
boolean b = a == 4;

if (b) {
    System.out.println("It's true!");
}

البته معمولاً مستقیم نتیجه عبارت شرطی را به نوع داده بولی تخصیص نمی دهیم

int a = 4;

if (a == 4) {
    System.out.println("Ohhh! So a is 4!");
}

عملگرهای صحیح و غلط

تعداد زیادی عملگر برای صحیح و غلط (Boolean) وجود ندارد ولی اکثر آنها در حال رشد هستند :

int a = 4;
int b = 5;
boolean result;
result = a < b; // true
result = a > b; // false
result = a <= 4; // کوچکتر مساوی - true
result = b >= 6; // بزرگتر مساوی - false
result = a == b; // مساوی - false
result = a != b; // غیر مساوی - true
result = a > b || a < b; // عملگر منطقی (یا) - true
result = 3 < a && a < 6; // عملگر منطقی (و) - true
result = !result; // عملگر منطقی (مخالف) - false

if - else و between

دستور if - else یک نمونه بسیار کاربردی از دستورات شرطی است .

if (a == b) {
    // اگر a و b برابر بودند دستورات اینجا اجرا می شود
}

همچنین ما می توانیم یک else به آن اضافه کنیم تا در صورتی که شرط اول برقرار نبود دستورات جایگزین اجرا شوند

if (a == b) {
    // این قسمت را در بالا توضیح دادیم
} else {
    // در صورت برقرار نبودن شرط مقابل if این دستورات اجرا می شوند :/
}

در صورتی که از {} استفاده نکنیم تنها یک خط دستور می توانیم داشته باشیم.

if (a == b)
    System.out.println("Another line Wow!");
else
    System.out.println("Double rainbow!");

اگرچه برای نوشتن کدها بصورت کوتاه این روش مفید می باشد ولی ما توصیه می کنیم بصورت کامل و با {} از این دستور استفاده نمایید.

دستور if از روشی دیگر

روش دیگری برای استفاده از دستور if وجود دارد :

int a = 4;
int result = a == 4 ? 1 : 8;

// result will be 1
// This is equivalent to
int result;

if (a == 4) {
    result = 1;
} else {
    result = 8;
}

برای افراد مبتدی این روش توصیه نمی شود.

== و برابری (equals)

عملگر == برای زمانی استفاده می شود که ما می خواهیم چک کنیم که آیا مقدار متغیر با مقدار مد نظر ما برابر است یا خیر == همچنین می توانیم از متد equals برای مقایسه برابری استفاده کنیم. بطور مثال :

String a = new String("Wow");
String b = new String("Wow");
String sameA = a;

boolean r1 = a == b;      // نتیجه این دستور false است زیرا a , b مساوی نیستند
boolean r2 = a.equals(b); // نتیجه این دستور true است زیرا a,b مساوی هستند
boolean r3 = a == sameA;  // نتیجه این دستور true است زیرا a,sameA مساوی هستند

تمرین

متغیرهای جلسه قبل را تغییر دهید و با استفاده از دستور if درستی یا نادرستی آن را چک کنید[...]

ادامه مطلب 0

آموزش جاوا - مقدمه

آموزش جاوا , آموزش رایگان برنامه نویسی , اندروید

خوش آمدید

به دوره آموزشی جاوا خوش آمدید

این که آیا شما یک برنامه نویس باتجربه هستید یا خیر، این آموزش برای هر کسی که بخواهد زبان برنامه نویسی Java را یاد بگیرد، طراحی شده است.

با استفاده از این دوره شما می توانید برنامه نویسی به زبان جاوا را آغاز کنید

قبل از هر چیز نیاز است یک IDE برای برنامه نویسی به زبان جاوا نصب کنید. پیشنهاد ما به شما نرم افزار NetBeans است

 

هر روز با یک قسمت از این آموزش در خدمت شما هستیم[...]

ادامه مطلب 0

ما را دنبال کنید

خبرنامه تکتا

راه های ارتباطی

تلفن تماس: 09353184127 - 09112936370

پست الکترونیک : info@taktagroup.ir