ایجاد کردن و نامگذاری کردن فایل های زبان برنامه نویسی جاوا

در این قسمت در رابطه با قوانین مختلفی در ایجاد کردن و نامگذاری کردن فایل های زبان برنامه نویسی جاوا صحبت خواهیم کرد. در قسمت قبلی از این آموزش، در رابطه با کلاس ها و دیگر مسائل بسیار مهم در زبان برنامه نویسی جاوا صحبت کردیم. کدهایی که به زبان برنامه نویسی جاوا تعریف می شوند، می بایست در یک فایل قرار بگیرند. در تعریف کردن و نامگذاری کردن این فایل ها نیز قوانینی وجود دارد که می‌بایست از آنها مطلع باشیم. در ادامه در رابطه با این قوانین صحبت خواهیم کرد.اولین قانون این است که فقط و فقط می توانید یک کلاس public را در یک فایل قرار بدهید. به عبارت دیگر؛ یک source file، فقط و فقط می تواند شامل یک کلاس public باشد.یک source file می‌تواند چندین کلاس غیر public نیز در خود داشته باشند.قانون بعدی این است که یک کلاس public باید با نام source file ای که در آن تعریف شده است، نام یکسانی داشته باشد. البته نام فایل مورد نظر با پسوند .java خاتمه پیدا خواهد کرد، اما کلاس تعریف شده عمومی در آن فایل می‌بایست همنام با نام فایل باشد. برای مثال؛ اگر یک کلاس به صورت public class Employee{} تعریف کرده اید، نام فایل مورد نظر نیز باید Employee.java باشد.اگر یک کلاس در یک package تعریف شود، جمله ی مربوط به تعریف کردن آن package می بایست اولین جمله در فایل مورد نظر باشد.اگر در یک فایل از جملات import استفاده کرده‌اید، آن ها می بایست بین جمله package و جمله شروع به تعریف کردن کلاس قرار بگیرند. اگر جمله package خاصی در یک فایل وجود ندارد، جملات import می بایست در اولین خطوط فایل قرار بگیرند.جملات import و package به تمامی کلاس های موجود در یک فایل اضافه خواهند شد. به عبارت دیگر؛ امکان تعریف کردن جملات package و import متفاوت برای کلاس هایی که در یک فایل یکسان قرار دارند وجود ندارد.در زبان برنامه نویسی جاوا، کلاس ها سطوح دسترسی متعدد و متنوع دارند. علاوه بر این؛ انواع مختلفی از کلاس ها از قبیل؛ کلاس‌های abstract و final و غیره را داریم. در رابطه با تمامی این موضوعات در قسمت های بعدی از این آموزش به طور مفصل تری صحبت خواهیم کرد. علاوه بر انواع کلاس های مطرح شده در زبان برنامه نویسی جاوا، در این زبان امکان تعریف کردن کلاس های خاص دیگری از قبیل؛ inner class ها و anonymous class ها نیز وجود دارد که در رابطه با آنها نیز در ادامه کار به طور مفصل تری صحبت خواهیم کرد.بررسی package در زبان جاوابه بیان ساده؛ package روشی برای دسته بندی کردن class ها و interface ها می باشد. این موضوع شبیه به ماهیت namespace ها در زبان برنامه نویسی سی شارپ است. زمانی که اقدام به توسعه دادن برنامه‌هایی با زبان برنامه نویسی جاوا می کنید، احتمالاً تعداد class ها و interface های زیادی را در برنامه لحاظ خواهید کرد. بنابراین؛ دسته بندی کردن آنها می تواند یک موضوع بسیار مهم باشد. با استفاده از package ها در زبان برنامه نویسی جاوا می توانیم این موضوع مهم را انجام بدهیم.بررسی جملات importدر زبان برنامه نویسی جاوا، اگر نام معتبر کامل و یا اصطلاحاً fully qualified name که شامل نام package و نام class می باشد به compiler داده شود، compiler می‌تواند خیلی ساده و راحت کد مورد نظر و یا class مورد نظر شما را پیدا کرده و از آن استفاده کند.جملات import روشی برای لحاظ کردن مکان صحیح یک class برای compiler می باشد، تا compiler بتواند آنها را به راحتی پیدا کند. این موضوع در زبان برنامه نویسی سی شارپ، توسط جملات using انجام می شود.برای مثال؛ خط کدی که در قسمت زیر مشاهده می کنید از compiler می‌خواهد که تمامی class های موجود در مسیر java_installation/java/io را بارگذاری کند.import java.io.*;بررسی یک مثال سادهبرای اینکه تمامی این مفاهیم مطرح شده تا به این قسمت را بتوانیم به صورت عملی ببینیم، دو کلاس با نام‌های Employee و EmployeeTest را تعریف خواهیم کرد. در ابتدا ویرایشگر متن خود را باز کرده و اقدام به نوشتن کدهایی که در قسمت زیر می بینید کنید. دقت کنید که کلاس Employee یک کلاس public و یا عمومی می باشد. بنابراین می بایست فایل مورد نظر را هم نام با نام این کلاس، یعنی Employee.java ذخیره کنید. کلاس Employee دارای چهار instance variable با نام‌های؛ name و age و designation و salary می باشد.علاوه بر این، یک تابع سازنده به طور صریح و یا اصطلاحاً explicit در این کلاس تعریف شده است که یک پارامتر ورودی را دریافت می کند. کد مربوط به این کلاس در قسمت زیر نشان داده شده است.import java.io.*;public class Employee {String name;int age;String designation;double salary;// This is the constructor of the class Employeepublic Employee(String name) {this.name = name;}// Assign the age of the Employee to the variable age.public void empAge(int empAge) {age = empAge;}/* Assign the designation to the variable designation.*/public void empDesignation(String empDesig) {designation = empDesig;}/* Assign the salary to the variable salary.*/public void empSalary(double empSalary) {salary = empSalary;}/* Print the Employee details */public void printEmployee() {System.out.println("Name:"+ name );System.out.println("Age:" + age );System.out.println("Designation:" + designation );System.out.println("Salary:" + salary);}}همان طور که در قسمت های قبلی گفتیم، پردازش کردن یک برنامه نوشته شده توسط زبان برنامه نویسی جاوا از درون متد main انجام می‌پذیرد. بنابراین؛ برای اجرا کردن کدهای نوشته شده در درون کلاس Employee می بایست یک متد به نام main تعریف شود و سپس در آن، object هایی از این کلاس ایجاد شوند. برای این کار یک کلاس جداگانه تعریف خواهیم کرد. ضمناً کلاس بعدی، کلاس EmployeeTest خواهد بود که در آن دو instance از کلاس Employee ایجاد شده و متدهایی از هر کدام از آن instance ها، فراخوانی می گردند و مقادیری به هر کدام از متغیرها و یا variable های آن کلاس انتصاب می گردند. کدی که در قسمت زیر می بینید، محتویات فایل EmployeeTest.java که کلاس Employee را در خود جای داده است را نشان می‌دهد.import java.io.*;public class EmployeeTest {public static void main(String args[]) {/* Create two objects using constructor */Employee empOne = new Employee("James Smith");Employee empTwo = new Employee("Mary Anne");// Invoking methods for each object createdempOne.empAge(26);empOne.empDesignation("Senior Software Engineer");empOne.empSalary(1000);empOne.printEmployee();empTwo.empAge(21);empTwo.empDesignation("Software Engineer");empTwo.empSalary(500);empTwo.printEmployee();}}حال می توانید هر دو کلاس را compile کرده و سپس EmployeeTest را اجرا کرده و خروجی را شبیه به آنچه که در قسمت زیر مشاهده می کنید، ببینید.C:\> javac Employee.javaC:\> javac EmployeeTest.javaC:\> java EmployeeTestName:James SmithAge:26Designation:Senior Software EngineerSalary:1000.0Name:Mary AnneAge:21Designation:Software EngineerSalary:500منبع: وبسایت پرووید