۱۰ مفهوم اصلی زبان جاوا که هر فرد مبتدی باید بداند

«جاوا» (Java)، یک زبان برنامهنویسی است که به شما در ساخت نرمافزارهای مخصوص پلتفرمهای مختلف کمک میکند. اگر قصد نوشتن برنامهای با «رابط کاربری گرافیکی» (Graphical User Interface) یا اصطلاحاً «GUI» برای دسکتاپ را دارید یا میخواهید یک نرمافزار سمت سرور و یا یک اپلیکیشن تلفن همراه برای اندروید بسازید، زبان جاوا گزینه مناسبی برای شما خواهد بود. برای شروع یادگیری هر زبانی، ابتدا باید با مفاهیم اصلی آن آشنا شوید. در این مقاله، 10 مفهوم کلیدی در زبان جاوا از جمله مفهوم کلاس در برنامه نویسی جاوا را به شما معرفی خواهیم کرد.
چرخه توسعه (ساخت نرمافزار جاوا)
برای هر نوع برنامهای، کدهای جاوا در فایلهای متنی با پسوند «java.» نوشته میشوند که به آنها «سورس فایلهای جاوا» (Java Source Files) میگویند. این سورس فایلها، با استفاده از مترجم یا «کامپایلر» (Compiler) جاوا، به «فایلهای کلاس» (Class Files) در این زبان کامپایل میشوند. سپس، فایلهای کلاس، درون آرشیوهای «ZIP» کنار یکدیگر قرار میگیرند که به آنها، «فایلهای جار» (JAR Files) میگویند. در مرحله بعد، این فایلهای جار به ماشین مجازی جاوا داده شده و با استفاده از تابع «()main» در یک کلاس مشخص اجرا میشوند.
متغیر (Variable)
«متغیر» (Variable)، از اساسیترین مفاهیم هر برنامهای در هر زبانی محسوب میشود. متغیر، یک مکان نامگذاری شده در حافظه برنامه است که میتواند مقادیر را در خود ذخیره کند. موارد زیر را میتوان به عنوان خصوصیات یک متغیر در نظر گرفت:
- برای هر متغیر، شروع و پایانی در در چرخه عمر آن وجود دارد.
- متغیر را میتوان از یک حافظه خارجی ذخیره و یا بازیابی کرد.
- مقدار متغیر قابل تغییر است.
- متغیر در محاسبات مورد استفاده قرار میگیرد.
فرض کنید که میخواهید مساحت یک دایره را محاسبه کنید. برای این کار باید شعاع دایره را در یک متغیر (فرضاً با نام radius) ذخیره کرده و سپس با استفاده از آن، مساحت را به دست بیاورید (مانند کد زیر).
static private double computeArea(double radius) { return Math.PI * radius * radius; }
نوع (Type)
هر متغیر موجود در برنامه جاوا داری یک «نوع» (Type) است. انواع متغیر را میتوان به سه گروه «اولیه» (Primitive)، کلاس داخلی و کلاس تعریف شده توسط کاربر تقسیم کرد. به عنوان مثال، نوع متغیر radius در کد بالا، double است. در قسمت زیر، توضیح مختصری از انواع متغیرها را مشاهده میکنید:
- متغیر اولیه: «char» (برای کاراکترها)، «byte» (برای یک مقدار 8-بیتی)، «int» (برای اعداد صحیح 32-بیتی)، «short» (برای اعداد صحیح 16-بیتی)، «long» (برای اعداد صحیح 64-بیتی)، «float» (برای اعداد اعشاری تا هفت رقم اعشار) و «double» (برای اعداد اعشاری تا پانزده رقم اعشار) از نمونههای متغیر اولیه هستند.
- کلاس داخلی: به عنوان نمونه، «رشته» (String)، یک کلاس داخلی در جاوا محسوب میشود که برای ذخیره و تغییر رشتهها به کار میرود.
- کلاس تعریف شده توسط کاربر: برای نمایش انواع متغیرهای پیچیدهتر، کاربر میتواند کلاسهای خود را ایجاد کند (در بخش بعدی به این موضوع میپردازیم).
کلاس (Class)
«کلاس» (Class)، طرحی برای یک مفهوم کلی در برنامههای جاوا به حساب میآید. کلاسها، «وضعیت» (State) و «رفتار» (Behavior) کدهای برنامه را درون خود محصور یا اصطلاحاً «کپسولهسازی» (Encapsulation) میکنند. رفتار کد، به وسیله «متدها» (Methods) و وضعیت آن، با استفاده از «متغیرهای عضو» (Member Variables) نشان داده میشود. به عنوان مثال، کلاس «Circle» در کد زیر، دارای وضعیت «radius» است و از متد «()computeArea» برای محاسبه مساحت استفاده میکند.
public class Circle { private double radius; public double computeArea() { return Math.PI * radius * radius; } }
شیء (Object)
«شیء» (Object)، نمونهای از یک کلاس است. تعریف کلاس را میتوان مانند یک طرح کلی برای ایجاد شیء در یک برنامه در حال اجرا در نظر گرفت. در مثال زیر، نحوه ایجاد یک نمونه از کلاس تعریف شده کد بالا در یک برنامه و فراخوانی متد آن آورده شده است:
Circle circle = ...; double area = circle.computeArea();
در واقع، کد نوشته شده در بخش کلاس، به عنوان طرح و مفهوم کلی محاسبه مساحت تعریف شده است. حال در کد بالا، از این طرح کلی برای محاسبه مساحت «circle» استفاده میشود. ارتباط کلاس با شیء را میتوان به همین صورت در نظر گرفت.
سازنده (Constructor)
«سازنده» (Constructor)، متد ویژهای درون یک کلاس است که در هنگام ایجاد شیء فراخوانی میشود. فراخوانی سازنده به همراه آرگومانهای ورودی در حین ساخت برنامه انجام میشود. سپس این آرگومانها، برای مقداردهی اولیه و تعیین وضعیت مناسب برای شیء مورد استفاده قرار میگیرند. در مثال زیر و در کلاس Circle، سازندهای برای دریافت radius به عنوان یک آرگومان ایجاد شده است. متد سازنده، نامی مشابه با نام کلاس دارد.
public class Circle { private double radius; public Circle(double r) { this.radius = r; } // more methods here ... }
حال با استفاده از تعریف کد بالا، میتوان یک شیء cirlce را ایجاد کرد.
Circle circle = new Circle(2.5);
متد (Method)
«متد شیء» (Object Method)، پیادهسازی یک رفتار بخصوص است. متد میتواند برای انجام محاسبات و بازگردانی یک مقدار مورد استفاده قرار گیرد که در این حالت، با نوع «return» تعریف میشود. در حالت دیگر، ممکن است فقط وظیفه بهروزرسانی وضعیت شیء را بر عهده داشته باشد. به این ترتیب، با نوع «void return» تعریف خواهد شد. به علاوه، متد میتواند آرگومانهایی که در محاسبات استفاده میشوند را نیز دریافت کند.
در مثال زیر، متد «()computeCircumference» توسط کلاس Circle و برای محاسبه محیط دایره تعریف شده است. در این متد هیچ آرگومانی دریافت نمیشود و هنگام بازگرداندن مقدار، عددی با نوع double بازگردانده میشود.
public class Circle { ... public double computeCircumference() { return 2 * Math.PI * radius; } ... }
فیلد (Field)
برای نمایش وضعیت یک شیء نمونه، از «فیلد» (Filed) در کلاس استفاده میشود. فیلد دارای انواع مختلفی است که میتواند از نوع اولیه یا به صورت کلاس باشد و معمولاً به صورت «خصوصی» (Private) تعریف میشود؛ یعنی فقط متدهای کلاس میتوانند مستقیماً به آن دسترسی داشته باشند. هنگامی که یک فیلد به صورت «عمومی» (Public) تعریف شود، خارج از کلاس نیز قابل دسترس خواهد بود.
در مثال زیر یک کلاس «Rectancle» (مستطیل) به همراه دو فیلد «length» (طول) و «width» (عرض) تعریف شده است. متدهای «()setLength» و «()setWidth»، وظیفه بهروزرسانی انداره length و width برای rectangle را به عهده دارند.
public class Rectangle { private double length, width; public Rectangle(double length,double width) { this.length = length; this.width = width; } public double computeArea() { return this.length * this.width; } public void setLength(double length) { this.length = length; } public void setWidth(double width) { this.width = width; } }
رابط (Interface)
«رابط» (Interface)، نوع خاصی از تعریف کردن در جاوا است که چکیدهای از مفهوم مورد نظر برنامه را نمایش میدهد. علاوه بر این، رابط طرحی را ارائه میکند که کلاسها باید مطابق آن پیادهسازی شوند. هنگامی یک رابط در یک کلاس اجرا میشود که تمام متدهای تعریف شده در آن در کلاس اجرا شده باشند. یکی از رایجترین رابطهای مورد استفاده در جاوا، «List» است که مجموعهای از آیتمهای مرتب شده را نمایش میدهد. این رابط، تمام متدهایی که باید توسط یک کلاس پیادهسازی شوند تا آن کلاس به عنوان یک List در نظر گرفته شود را تعریف میکند.
public interface List { public void add(Object obj); public Object get(int index); public void remove(int index); }
کلاسی که این رابط را اجرا میکند باید تمام متدهای موجود در آن را نیز اجرا کند. کلاس «ArrayList»، این رابط را با استفاده از سیستم ذخیرهسازی آرایهای پیادهسازی میکند. این کلاس میتواند به صورت زیر تعریف شود:
public class ArrayList implements List { // private field member used for storage private Object[] storage; public void add(Object obj) { // implements add() here } public Object get(int index) { // implements get() here } public void remove(int index) { // implements remove() here } }
پکیج (Package)
«پکیج» (Package) در زبان جاوا، واحدی برای سازماندهی کلاسها است. هر کلاس درون یک پکیج تعریف میشود و کلاسهای مرتبط، در یک پکیج واحد گروهبندی میشوند. نامگذاری پکیجها به صورت قراردادی بوده و دارای یک ترتیب سلسلهمراتبی است. در ابتدای نام پکیج، نام دامنه شرکت به صورت معکوس وارد میشود. به عنوان مثال، شرکتی که دارای دامنه «example.com» است، میتواند در پکیجی با نام «com.example.shapes» تعریف شود که کلاسی با نام «Cirlce» درون این پکیج پیادهسازی شده است. پکیجها، درون پوشهای با ترتیب اسمی مشابه با اجزای تشکیل دهنده نام خود ایجاد میشوند. به عنوان مثال، کلاس Circle، در مسیر «com/example/shapes» ایجاد خواهد شد.
سخن آخر
در این مقاله، خلاصهای از مهمترین و اساسیترین مفاهیم موجود در زبان جاوا برای شما ارائه شد. اگر قصد شروع یادگیری زبان جاوا را دارید، ممکن است در ابتدای کار، درک تمام این مفاهیم برای شما کمی دشوار باشد. با این حال، آشنایی با اجزای اصلی یک زبان، آمادگی بیشتر و یادگیری بهتر آن زبان را در شروع کار در پی خواهد داشت. امیدواریم مطالعه این مقاله برایتان مفید واقع شده باشد. در صورت علاقهمندی به موضوعات مشابه، مطالب زیر را به شما پیشنهاد میکنیم:
- آموزش برنامه نویسی جاوا
- آموزش جامع برنامه نویسی جاوا به زبان ساده
- برنامهنویسی را سریعتر بیاموزید – ۵ ایده برای شروع کدنویسی
- 6 زبان برنامهنویسی مناسب برای مبتدیها
- مفهوم کلاس در برنامه نویسی — همراه با نمونه مثال عملی
#