دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
اصول شیگرایی در سی شارپ چیست؟
1404/12/03 -
آموزش قوانین و اصول نامگذاری در جاوا
1404/12/03 -
آشنایی با مفاهیم اولیه Backup در SQL Server
1404/12/02 -
انواع پلتفرم های جاوا
1404/12/02
آموزش خطوط توضیحی ( کامنت ) در جاوا (Java Comment)
آموزش خطوط توضیحی (کامنت) در جاوا (Java Comment)
در دنیای برنامهنویسی، نوشتن کدی که کامپیوتر بتواند آن را اجرا کند تنها بخشی از ماجراست.
بخش مهم دیگر، نوشتن کدی است که انسانها نیز بتوانند آن را به راحتی بخوانند و درک کنند. اینجاست که کامنتها یا خطوط توضیحی وارد عمل میشوند.
کامنتها توضیحات متنی هستند که برنامهنویسان در میان کدهای خود قرار میدهند تا هدف و عملکرد بخشهای مختلف برنامه را روشن کنند.
کامنتها در جاوا توسط کامپایلر نادیده گرفته میشوند و هیچ تأثیری بر اجرای برنامه ندارند.
آنها صرفاً برای انسانها نوشته میشوند تا به خودمان در آینده کمک کنیم کدی که نوشتهایم را سریعتر بفهمیم،
به دیگر برنامهنویسانی که روی کد ما کار میکنند اطلاعات لازم را بدهیم، مستندسازی خودکار برای پروژه ایجاد کنیم، و بخشهایی از کد را به طور موقت از اجرا خارج کنیم برای تست یا دیباگ.
انواع کامنت در جاوا
جاوا از سه نوع کامنت پشتیبانی میکند که عبارتند از کامنتهای تکخطی با دو اسلش، کامنتهای چندخطی با اسلش و ستاره، و کامنتهای مستندسازی با دو اسلش و دو ستاره.
-
کامنتهای تکخطی (Single-line Comments)
-
نحو (Syntax)
-
کامنتهای تکخطی با دو اسلش پشت سر هم یعنی // شروع میشوند و تا انتهای همان خط ادامه مییابند.
هر چیزی که بعد از // در آن خط بیاید، توسط کامپایلر نادیده گرفته میشود.
برای مثال:
// این یک کامنت تکخطی است
int number = 10; // این هم یک کامنت در انتهای خط کد
-
-
کاربردها
کامنتهای تکخطی معمولاً برای توضیحات کوتاه و ساده استفاده میشوند.برای مثال وقتی میخواهید مشخص کنید یک بخش از کد چه کاری انجام میدهد:
-
// محاسبه مجموع اعداد آرایه
int sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
همچنین برای توضیح متغیرها کاربرد دارند:
String firstName = "علی"; // نام کاربر
String lastName = "احمدی"; // نام خانوادگی کاربر
int age = 25; // سن کاربر
یکی دیگر از کاربردهای مهم کامنتهای تکخطی، غیرفعال کردن موقت خطوط کد است که به آن Commenting out میگویند:
// System.out.println("این خط اجرا نمیشود");
System.out.println("این خط اجرا میشود");
کامنتهای تکخطی میتوانند در یک خط جداگانه باشند یا در انتهای یک خط کد قرار گیرند.
برای کامنت کردن چند خط متوالی، باید هر خط را با // شروع کنید.
-
کامنتهای چندخطی (Multi-line Comments)
-
نحو (Syntax)
کامنتهای چندخطی با /* شروع و با */ پایان مییابند.
هر چیزی بین این دو علامت، حتی اگر چند خط باشد، به عنوان کامنت در نظر گرفته میشود.
برای مثال:
-
/* این یک کامنت چندخطی است
میتواند چندین خط را پوشش دهد
و کامپایلر همه این خطوط را نادیده میگیرد */
int number = 20;
-
-
کاربردها
کامنتهای چندخطی برای توضیحات مفصل و طولانی بسیار مناسب هستند.
وقتی نیاز دارید توضیح کاملی درباره عملکرد یک متد یا الگوریتم بدهید، میتوانید از این نوع کامنت استفاده کنید:
-
/*
* این متد عملیات پیچیدهای را انجام میدهد
* ابتدا دادهها از پایگاه داده خوانده میشوند
* سپس پردازشهای لازم روی آنها انجام میگیرد
* در نهایت نتایج به خروجی فرستاده میشود
*/
public void processComplexData() {
// کد متد اینجا قرار میگیرد
}
کاربرد دیگر، غیرفعال کردن چند خط کد به طور همزمان است:
/*
System.out.println("خط اول");
System.out.println("خط دوم");
System.out.println("خط سوم");
*/
System.out.println("این خط اجرا میشود");
همچنین میتوانید از کامنتهای چندخطی برای تقسیمبندی بخشهای مختلف کد استفاده کنید:
/* ---------- بخش خواندن دادهها ---------- */
// کد خواندن دادهها
/* ---------- بخش پردازش دادهها ---------- */
// کد پردازش دادهها
/* ---------- بخش نمایش نتایج ---------- */
// کد نمایش نتایج
میتوانید از ستارهها در ابتدای هر خط برای زیبایی و خوانایی بیشتر استفاده کنید، اما این کار اجباری نیست.
کامنتهای چندخطی را نمیتوان تو در تو یا nested قرار داد. اگر فقط یک خط نیاز به کامنت دارد، استفاده از کامنت تکخطی بهتر است.
-
کامنتهای مستندسازی (Documentation Comments / Javadoc)
-
نحو (Syntax)
کامنتهای مستندسازی یا Javadoc با /** شروع و با */ پایان مییابند.
این نوع کامنتها قبل از کلاسها، اینترفیسها، متدها و فیلدها قرار میگیرند و توسط ابزار javadoc برای تولید مستندات HTML خودکار استفاده میشوند.
برای مثال:
-
/**
* این یک کامنت مستندسازی است
* میتواند چندین خط داشته باشد
* و شامل تگهای خاصی باشد
*/
public class MyClass {
// کد کلاس
}
تگهای مهم Javadoc در جاوا
کامنتهای مستندسازی میتوانند شامل تگهای خاصی باشند که اطلاعات ساختاریافتهای درباره کد ارائه میدهند.
از مهمترین این تگها میتوان به:
-
param@
برای توضیح پارامترهای یک متد -
return@
برای توضیح مقدار بازگشتی متد -
throws@ یا exception@
برای توضیح استثناهایی که متد پرتاب میکند -
author@
برای مشخص کردن نویسنده کلاس -
version@
برای مشخص کردن نسخه -
since@
برای نسخهای که این ویژگی اضافه شده -
see@
برای ارجاع به مستندات دیگر -
deprecated@
برای نشان دادن منسوخ شدن API -
link@
برای ایجاد لینک به یک کلاس یا متد دیگر -
code@
برای نمایش متن به صورت کد اشاره کرد
🚀 از صفر تا قهرمان جاوا، فقط با یک دوره!
به دنبال یه فرصت طلایی برای شروع برنامهنویسی میگردی؟
دوره آموزشی جاوا ما، همون چیزیه که نیاز داری!✨ چرا این دوره رو انتخاب میکنی؟
🎯 از مبتدی تا حرفهای
بدون پیشزمینه شروع میکنی و به یه برنامهنویس جاوا تبدیل میشی که بازار کار منتظرته!🛠 پروژهمحور و عملی
با انجام پروژههای واقعی، کدنویسی رو یاد میگیری، نه فقط تئوری!👨🏫 پشتیبانی همیشگی
هرجا گیر کنی، تیم پشتیبانی کنارته تا مشکلت حل بشه.🔓 دسترسی مادامالعمر
هر وقت خواستی به محتوا دسترسی داری، برای همیشه!
مثال کامل Javadoc
برای درک بهتر، یک مثال کامل از کلاس ماشینحساب با کامنتهای Javadoc را بررسی میکنیم:
import java.io.IOException;
/**
* کلاس ماشینحساب برای انجام عملیات پایه ریاضی
* <p>
* این کلاس شامل متدهایی برای جمع، تفریق، ضرب و تقسیم است.
* تمام متدها با اعداد صحیح کار میکنند.
* </p>
*
* @author علی احمدی
* @version 1.0
* @since 1.0
*/
public class Calculator {
/**
* دو عدد صحیح را جمع میکند
*
* @param a عدد اول
* @param b عدد دوم
* @return مجموع a و b
*/
public int add(int a, int b) {
return a + b;
}
/**
* دو عدد صحیح را از هم کم میکند
*
* @param a عدد اول
* @param b عدد دوم
* @return تفریق a منهای b
*/
public int subtract(int a, int b) {
return a - b;
}
/**
* دو عدد صحیح را در هم ضرب میکند
*
* @param a عدد اول
* @param b عدد دوم
* @return حاصل ضرب a در b
*/
public int multiply(int a, int b) {
return a * b;
}
/**
* عدد اول را بر عدد دوم تقسیم میکند
*
* @param a عدد اول (مقسوم)
* @param b عدد دوم (مقسومعلیه)
* @return حاصل تقسیم a بر b
* @throws ArithmeticException اگر b برابر صفر باشد
*/
public int divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("تقسیم بر صفر مجاز نیست");
}
return a / b;
}
}
تولید مستندات با Javadoc
برای تولید مستندات HTML از کامنتهای Javadoc، دستور زیر را در ترمینال اجرا کنید:
javadoc -d docs Calculator.java
این دستور پوشهای به نام docs ایجاد میکند که شامل فایلهای HTML مستندات شماست.
نوآوری در جاوا ۲۳: کامنتهای Markdown
جاوا ۲۳ قابلیت جدیدی به نام Markdown در Javadoc معرفی کرده است.
در این نسخه، کامنتهایی که با سه اسلش یعنی /// شروع میشوند، به عنوان کامنتهای Javadoc با سینتکس Markdown تفسیر میشوند.
مثال کامنت Markdown در جاوا ۲۳
/// این یک متد جمع ساده است
///
/// **پارامترها:**
/// - `a`: عدد اول
/// - `b`: عدد دوم
///
/// **خروجی:**
/// مجموع دو عدد
///
/// مثال:
/// ```
/// int result = add(5, 3); // نتیجه: 8
/// ```
public int add(int a, int b) {
return a + b;
}
مزایای استفاده از Markdown در جاوا
-
استفاده از Markdown مزایای متعددی دارد.
-
این روش سادهتر و خواناتر از HTML است.
-
میتوانید از پررنگ کردن متن، ایتالیک، لیستها و بلوکهای کد استفاده کنید.
-
همچنین یکپارچگی بیشتری با ابزارهای مدرن دارد.
بهترین شیوههای کامنتنویسی (Best Practices)
-
کامنت نباید جایگزین کد بد باشد
معروف است که میگویند: "کد بد را کامنت نگذارید، آن را بازنویسی کنید".
اگر کد شما آنقدر پیچیده است که نیاز به کامنت طولانی دارد، احتمالاً راه بهتری برای نوشتن آن وجود دارد.
برای مثال، به جای نوشتن کامنت برای کد پیچیده و نامفهوم:
// بررسی کنید اگر کارمند پرچم ساعتی دارد و سنش بالای ۶۵ است
if((employee.flags & HOURLY_FLAG) && (employee.age > 65)) {
// ...
}
بهتر است کد را بازنویسی کنید تا خودش گویا باشد:
if(employee.isEligibleForFullBenefits()) {
// ...
}
-
از کامنتهای بدیهی و تکراری خودداری کنید
کامنتهایی که چیزی واضح را توضیح میدهند، فقط کد را شلوغ میکنند. برای مثال کامنت زیر کاملاً بیفایده است:
i++; // i را یک واحد افزایش بده
-
همیشه کامنتها را با کد بهروز نگه دارید
کامنتهای قدیمی و نادرست بدتر از نبود کامنت هستند، چون گمراهکنندهاند.
همیشه بعد از تغییر کد، کامنتهای مربوطه را نیز بهروز کنید.
-
از کامنتگذاری کدهای قدیمی خودداری کنید
هیچوقت کدهای کامنتشده را در مخزن نهایی نگذارید.
اگر کدی را نیاز ندارید، آن را پاک کنید. سیستمهای کنترل نسخه مانند Git همیشه تاریخچه را نگه میدارند.
به جای نگه داشتن کدهای کامنتشده:
// System.out.println("مقدار x: " + x);
// System.out.println("مقدار y: " + y);
// System.out.println("مقدار z: " + z);
int result = calculate(x, y, z);
کد تمیز و بدون کامنتهای اضافی بنویسید:
int result = calculate(x, y, z);
-
از Javadoc برای APIهای عمومی استفاده کنید
برای کلاسها و متدهایی که دیگران از آنها استفاده میکنند، حتماً Javadoc بنویسید.
اما برای کدهای داخلی و خصوصی، نیازی به Javadoc رسمی نیست.
-
قصد و هدف را توضیح دهید، نه مکانیزم را
کامنتها باید دلیل نوشتن کد را توضیح دهند، نه اینکه بگویند کد چه کاری انجام میدهد که از روی خود کد قابل فهم است.
کامنت بد که فقط عملکرد کد را توضیح میدهد:
// مقدار i را در یک حلقه از ۰ تا ۹ افزایش میدهیم
for (int i = 0; i < 10; i++) {
// ...
}
کامنت خوب که هدف کد را توضیح میدهد:
// ۱۰ بار تلاش میکنیم تا به سرور وصل شویم
for (int attempt = 0; attempt < 10; attempt++) {
// ...
}
-
از کامنتهای TODO برای کارهای آینده استفاده کنید
کامنتهای TODO یادآوریهای مفیدی برای کارهایی هستند که باید در آینده انجام شوند:
// TODO: این متد باید بهینهسازی شود
public void slowMethod() {
// ...
}
-
برای عبارات باقاعده (Regex) کامنت بگذارید
عبارات باقاعده برای انسانها سختخوان هستند، پس حتماً برای آنها کامنت بگذارید:
// الگوی ایمیل: نامکاربری@دامین.پسوند
String emailPattern = "^[A-Za-z0-9+_.-]+@(.+)$";
-
از کامنتهای هشداردهنده استفاده کنید
اگر بخشی از کد عواقب خاصی دارد، مثلاً مصرف حافظه بالا یا عملیات کند، با کامنت هشدار دهید:
// هشدار: این عملیات میتواند چند ثانیه طول بکشد
loadLargeFile();
کاربردهای خلاقانه کامنتها
-
ساختاربندی کد با کامنت
میتوانید از کامنتها برای تقسیمبندی کد به بخشهای منطقی استفاده کنید:
// ==================== متدهای کمکی ====================
// ==================== متدهای اصلی ====================
// ==================== متدهای پردازش خطا ====================
-
کامنتهای توضیحی برای منطق پیچیده
برای الگوریتمهای پیچیده، میتوانید مراحل کار را با کامنت توضیح دهید:
/*
* الگوریتم جستجوی دودویی:
* 1. آرایه باید مرتب باشد
* 2. عنصر میانی را پیدا کن
* 3. اگر عنصر میانی برابر مقدار مورد نظر است، اندیس را برگردان
* 4. اگر مقدار مورد نظر کوچکتر است، نیمه چپ را جستجو کن
* 5. اگر بزرگتر است، نیمه راست را جستجو کن
*/
-
کامنتهای اطلاعاتی
میتوانید منابع و مراجع خود را در کامنتها ذکر کنید:
// منابع:
// - مستندات رسمی جاوا: https://docs.oracle.com
// - مقاله مرتبط: https://example.com/article
اشتباهات رایج در کامنت نویسی
-
کامنتهای بیمعنی و توهینآمیز
هرگز از کامنتهای توهینآمیز یا غیرحرفهای استفاده نکنید.
کد شما ممکن است توسط افراد دیگر خوانده شود. -
کامنتهای بیش از حد
کامنتهای زیاد باعث شلوغی کد و کاهش خوانایی میشوند.
فقط جاهایی که لازم است کامنت بگذارید. -
کامنتهای ناقص و مبهم
کامنتها باید کامل و واضح باشند.
کامنتهای مبهم بیشتر گیجکننده هستند تا مفید. -
کامنتهای قدیمی و منسوخ
همیشه کامنتها را بهروز نگه دارید.
کامنتهای قدیمی که با کد همخوانی ندارند، گمراهکننده هستند.
جمعبندی
کامنتها در جاوا ابزاری قدرتمند برای بهبود خوانایی و نگهداری کد هستند.
سه نوع اصلی کامنت در جاوا وجود دارد که عبارتند از کامنتهای تکخطی با // برای توضیحات کوتاه و کامنت کردن خطوط، کامنتهای چندخطی با /* */ برای توضیحات بلند و کامنت کردن چند خط، و
کامنتهای مستندسازی با /** */ برای تولید مستندات خودکار با Javadoc.
نکات کلیدی که باید به خاطر بسپارید این است که کامنتها توسط کامپایلر نادیده گرفته میشوند و فقط برای انسانها هستند.
کامنتهای خوب، قصد و هدف کد را توضیح میدهند، نه عملکرد آن را. همیشه کامنتها را با تغییرات کد بهروز نگه دارید.
برای APIهای عمومی حتماً از Javadoc استفاده کنید
از کامنتگذاری کدهای قدیمی خودداری کنید. و در نهایت، جاوا ۲۳ قابلیت کامنتهای Markdown با سه اسلش /// را معرفی کرده است.
با رعایت این اصول، میتوانید کدی بنویسید که نه تنها برای کامپیوتر قابل اجراست، بلکه برای انسانها نیز خوانا و قابل درک است.
این یکی از نشانههای برنامهنویسی حرفهای است. به یاد داشته باشید که کد خوب خودش بهترین مستند است و کامنتها باید مکمل آن باشند، نه جایگزین آن.
دوره های مرتبط
آموزش برنامه نویسی Java
Java یکی از زبان های شی گرایی قوی در عرصه تولید نرم افزار های بانکی و امنیتی به شمار می رود.













