آموزش جاوا- قسمت 2 (Variables and Types)

آموزش جاوا- قسمت 2 (Variables and Types)

اگرچه جاوا،یک زبان  شی گراست، اما همه typeها، object نیستند. جاوا روی انواعی از متغیرهای پایه‌ای به نام primitiveها ساخته شده است.

در اینجا لیستی از همه primitiveها آورده شده است:

  • byte (عدد صحیح، یک بایت)
  • short (عدد صحیح، دو بایت)
  • int (عدد صحیح، چهار بایت)
  • long (عدد صحیح، هشت بایت)
  • float (عدد اعشاری، چهار بایت)
  • double (عدد اعشاری، هشت بایت)
  • char (کاراکتر، دو بایت)
  • boolean (بولین، true یا false، یک بایت)

همیشه یادتان باشد که جاوا از نظر متغیرها یک زبان سفت و سخت حساب می‌شود، به این معنا که متغیرها باید حتما قبل از استفاده، تعریف شوند.

حالا که یاد گرفتید primitiveها یا به عبارتی typeهای پایه ای جاوا چه هستند، بد نیست تا با نحوه استفاده از آن‌ها بیشتر آشنا شویم:

 

اعداد:

در جاوا، تعریف و مقداردهی یک عدد به این صورت انجام می‌شود:

int node;   
node = 5;

البته می‌توان این دو خط را به صورت زیر در یک خط ترکیب کرد:

int node = 5;  

 

برای تعریف اعداد اعشاری double می‌توانید از این syntax استفاده کنید:

double bw = 4.5;

 

مشابه همین کار را می‌توان برای تعریف متغیرهای float نیز انجام داد. اما برای اینکه با مبحث جدیدی آشنا شوید یک مثال دیگر از نحوه تعریف یک متغیر float می‌زنیم.

اگر شما بخواهید که از متغیر bw یک مقدار float داشته باشید می‌توانید با استفاده از عمل cast کردن این کار را انجام دهید:

float f = (float)bw;

لازم به ذکر است که casting فقط مختص float نیست. هر دو typeای که قابل cast کردن یا تبدیل به یکدیگر باشند را می‌توان به این صورت استفاده کرد.

 

کاراکترها و stringها:

در جاوا، یک کاراکتر، type مخصوص خودش را دارد و یک نوع عدد حساب نمی‌شود، برای همین هنگام مقداردهی، خود کاراکتر را قرار می‌دهیم و از مقدار ASCII آن استفاده نمی‌کنیم:

char controller = "c";

باید بدانید که string جزو typeهای primitive نیست و در جاوا با string‌ها طور دیگری رفتار می‌شود. در زیر می‌توانید برخی روش‌های استفاده از stringها را مشاهده کنید:

//create a string with a constructor 
 String s1 = new String("Don't be afraid to fail...");  
 //Just using "" creates a string, so no need to write it in the previous way. 
 String s2 = "Be afraid not to try!";  
 //Java defined the operator + on strings to concatenate:  
 String s3 = s1 + s2;

در جاوا عملگرِ” +” فقط برای stringها کاربرد دارد و شما هیچگاه این عملگر را به جز با primitiveها، به همراه objectهای دیگر نخواهید دید.

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

 

مقادیر boolean:

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

boolean b = false;
 b = true;  
 
boolean toBe =  false;  
b = toBe || !toBe; 
if (b) {
   System.out.println(b); 
}

int node = 0;
b = node; //will not work
if (node){ //will not work
//will not work  
} 

با توجه به مطالب گفته شده، اگر برنامه بالا را اجرا کنید با این خطا مواجه خواهید شد:

Main.java:11: error: incompatible types: int cannot be converted to boolean
b = node; // Will not work
^
Main.java:12: error: incompatible types: int cannot be converted to boolean
if (node) { // Will not work
^
2 errors

تمرین:

برای تمرین سعی کنید تا از تمام primitiveهایی که میشناسید (به جز long و double) استفاده کرده و خروجی H3110 SDN 2.0 true را چاپ کنید. در کد زیر یکی از primitiveهای استفاده شده در خروجی مورد نظر تعریف شده است. کافیست سایر primitiveهای لازم را در ادامه تعریف کرده و در نهایت مشابه خط چهارم برنامه، با ترکیب آن‌ها در قالب یک String، خروجی را چاپ کنید:

public class Main {
    public static void main(String[] args) {
        byte zero = 0;
        String output = "W" + zero + "w";
        System.out.println(output);
    }
}
برای انجام تمرین‌ این مبحث می‌توانید از یک IDE آنلاین مثل tutorialspoint استفاده کنید.

 

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

در این پست سعی کردیم تا خیلی ساده درمورد typeهای جاوا توضیح دهیم. بدرود تا  پست بعدی که با دستورات شرطی در جاوا آشنا خواهیم شد…

 

پاسخ تمرین قسمت دوم:

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

public class Main {
    public static void main(String[] args) {
        byte zero = 0;
        short a = 3;
        int b = 1;
        char c = "N";
        char d = ' ';
        float e = 2.0f;
        boolean f = true;
        String output = "H" + a + b + b + zero + d + "S" + "D" + c + d + e + d + f;
        System.out.println(output);
    }
}

تاریخچه آموزش جاوا به ترتیب:

قسمت اول آموزش جاوا (مقدمه)

قسمت دوم آموزش جاوا (Types and Variables)

قسمت سوم آموزش جاوا (دستورات شرطی)

قسمت چهارم آموزش جاوا (آرایه‌ها)

قسمت پنجم آموزش جاوا (حلقه‌ها)

قسمت ششم آموزش جاوا (توابع)

قسمت هفتم آموزش جاوا (اشیا)

قسمت هشتم آموزش جاوا (ارث‌بری)

قسمت نهم آموزش جاوا (try and catch)

قسمت دهم آموزش جاوا (کلاس‌های abstract)

قسمت یازدهم آموزش جاوا (Interfaces)

قسمت دوازدهم آموزش جاوا (مفهوم Generic)

قسمت سیزدهم آموزش جاوا (Networking)

قسمت چهاردهم آموزش جاوا (مفهوم نخ و رشته)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *