CodeGym /จาวาบล็อก /สุ่ม /ความคิดเห็นของจาวา
John Squirrels
ระดับ
San Francisco

ความคิดเห็นของจาวา

เผยแพร่ในกลุ่ม
ความคิดเห็นเป็นส่วนหนึ่งของโปรแกรมที่ไม่ได้ดำเนินการ คอมไพเลอร์เพียงเพิกเฉยต่อความคิดเห็นเนื่องจากไม่ได้มีไว้สำหรับความคิดเห็นนั้น เขียนด้วยภาษา “มนุษย์” และมีวัตถุประสงค์เพื่ออธิบายโปรแกรม ส่วนหนึ่งของโปรแกรม บรรทัดเดียวหรือวิธีการสำหรับนักพัฒนาหรือผู้ที่เกี่ยวข้องกับการพัฒนา ส่วนใหญ่แล้วความคิดเห็นจะเขียนเป็นภาษาอังกฤษ ซึ่งเป็นธรรมเนียม ในบทความนี้ เราจะพูดถึงความคิดเห็นใน Java และวิธีใช้อย่างถูกต้องเพื่อทำให้ชีวิตคุณและเพื่อนร่วมทีมของคุณง่ายขึ้น

ความคิดเห็น Java: เหตุใดจึงมีความสำคัญ

ว่ากันว่าโปรแกรมเมอร์ขี้เกียจมากเมื่อต้องแสดงความคิดเห็นเกี่ยวกับโค้ดของตนเอง อย่างไรก็ตาม นี่เป็นทักษะที่สำคัญมาก ดังนั้นอย่าประมาทมัน แม้ว่าคุณจะเพิ่งเริ่มเรียนรู้ Java ก็ตาม โค้ดที่มีความคิดเห็นดีมีค่ามากกว่าโค้ดที่ไม่มีความคิดเห็น เนื่องจากโปรแกรมดังกล่าวดูแลรักษาได้ง่ายกว่ามาก เนื่องจากโปรเจ็กต์ขนาดใหญ่ส่วนใหญ่มักเขียนด้วยภาษา Java การแสดงความคิดเห็นอย่างเชี่ยวชาญยังช่วยเร่งการพัฒนาด้วย เนื่องจากโปรแกรมเมอร์จะจัดการกับโค้ดของผู้อื่นได้ง่ายกว่า จำเป็นต้องมีความคิดเห็นเพื่อ:
  • เข้าใจโค้ด. ของคุณหรือของคนอื่น หากคุณรู้สึกว่าคุณไม่จำเป็นต้องถอดรหัสโค้ดของคุณเองเพราะคุณเขียนมันขึ้นมา ให้ลองเปิดโปรแกรมที่ค่อนข้างซับซ้อนที่คุณเขียนเมื่อเดือนที่แล้วหรือเร็วกว่านั้น และทำความเข้าใจอย่างรวดเร็วว่าคุณนึกถึงอะไร ที่ไหน และทำไม ความคิดเห็นสามารถใช้เพื่ออธิบายตรรกะของโปรแกรมหรือบล็อกของโปรแกรม รวมทั้งให้คำแนะนำสำหรับผู้ที่จะทำงานกับโค้ดของคุณในภายหลัง ความคิดเห็นประเภทนี้เรียกได้ว่าเป็นการอธิบาย

  • ประกอบด้วยข้อมูลเกี่ยวกับวัตถุประสงค์ของออบเจ็กต์ พารามิเตอร์อินพุตและเอาต์พุต (ถ้ามี) ข้อมูลเกี่ยวกับนักพัฒนา และสิ่งสำคัญอื่นๆ ที่เกี่ยวข้องกับส่วนของโค้ด ความคิดเห็นดังกล่าวอยู่ในส่วนหัวของโมดูล ไลบรารี ขั้นตอน และฟังก์ชัน พวกเขาสามารถเรียกว่าความคิดเห็นเอกสาร

  • ควบคุมข้อบกพร่องและปรับปรุงโค้ด รหัสที่น่าสงสัยหรือรหัสที่ต้องปรับปรุงสามารถแสดงความคิดเห็นและกลับมาดูใหม่ได้ในภายหลัง หากเกิดขึ้นกับคุณว่าปัญหาบางอย่างสามารถแก้ไขได้ด้วยวิธีอื่น แต่ตอนนี้คุณไม่มีเวลาให้เขียนแนวคิดนี้ในความคิดเห็น มิฉะนั้นเป็นไปได้มากว่าภายใต้แรงกดดันของโค้ดใหม่คุณจะลืมมันไป

ประเภทของความคิดเห็นใน Java

แม้ว่าคุณจะสามารถเขียนอะไรก็ได้ทุกอย่างในความคิดเห็น แต่ก็มีความคิดเห็นบางประเภทใน Java และกฎเกณฑ์ในการใช้งาน ในความคิดเห็น Java cold be:
  • ความคิดเห็นบรรทัดเดียว
  • ความคิดเห็นหลายบรรทัด
  • ความคิดเห็นเกี่ยวกับเอกสาร

ความคิดเห็นบรรทัดเดียว

ความคิดเห็น Java ที่พบบ่อยที่สุดคือความคิดเห็นบรรทัดเดียว หากต้องการระบุความคิดเห็นดังกล่าว ก็เพียงพอที่จะใส่เครื่องหมายทับสองครั้งก่อนข้อความ// . ความคิดเห็นบรรทัดเดียวจะถูกตั้งค่าสถานะเฉพาะที่จุดเริ่มต้นของความคิดเห็นเท่านั้น ความเห็นยังคงต่อท้ายบรรทัด ไวยากรณ์:
//here is a single line comment.
ลองมาดูตัวอย่างความคิดเห็น Java ประเภทนี้:
public class CommentsDemo1 {
   public static void main(String[] args) {
       System.out.println("This text is visible for Java compiler");
       //this text is single line comment
//This one is also single line comment
//they both (and me) are invisible for compiler
   }
}
ผลลัพธ์คือ:
ข้อความนี้มองเห็นได้สำหรับคอมไพเลอร์ Java
โดยปกติแล้ว ความคิดเห็นบรรทัดเดียวจะอยู่ด้านบนหรือด้านล่างตำแหน่งที่มีความคิดเห็นในโปรแกรม บางครั้งจะอยู่บนบรรทัดเดียวกัน สิ่งสำคัญคือต้องทำให้ชัดเจนว่าความคิดเห็นนั้นหมายถึงอะไร

ความคิดเห็นหลายบรรทัด

บางครั้งมีหนึ่งบรรทัดไม่เพียงพอที่จะเขียนความคิดเห็น Java ตัวอย่างเช่น คุณต้องอธิบายวิธีการทำงานของวิธีการหรือสูตรที่ซับซ้อนที่คุณกำลังนำไปใช้ ในกรณีนี้ คุณสามารถเขียนความคิดเห็นบรรทัดเดียวได้หลายรายการ แต่การเขียนที่เรียกว่าความคิดเห็นหลายบรรทัดจะมีเหตุผลมากกว่า มีสัญลักษณ์กำกับไว้ทั้งสองด้าน/* * / ไวยากรณ์ของความคิดเห็นหลายบรรทัด:
/*This comment
is
Multi line comment
we can describe here
what we need */
มาดูตัวอย่างความคิดเห็นหลายบรรทัดในโค้ดกัน
public class RleTest {

   /*
   Run Length Encoding (RLE),  a data compression algorithm
   that replaces repeated characters (series)
   with one character and the number of its repetitions.

   this method is to decode a String using run-length encoding

    */
   private static String decodeRle(String encoded) {
       if (encoded.isBlank()) return "";
       StringBuilder result = new StringBuilder();
       int count = 0;
       char baseChar = encoded.charAt(0);
       for (int i = 1; i <= encoded.length(); i++) {
           char c = i == encoded.length() ? '$' : encoded.charAt(i);
           if (Character.isDigit(c)) {
               count = count * 10 + Character.digit(c, 10);
           } else {
               do {
                   result.append(baseChar);
                   count--;
               } while (count > 0);
               count = 0;
               baseChar = c;
           }
       }
       return result.toString();
   }
   public static void main(String[] args) {
       System.out.println(decodeRle("C3ecddf8"));
   }
}

ความคิดเห็นเกี่ยวกับเอกสาร Java

นี่เป็นความคิดเห็น Java ชนิดพิเศษที่ใช้เพื่อสร้างหน้าเอกสารประกอบ โดยปกติแล้วนักพัฒนาจะเขียนความคิดเห็นเกี่ยวกับเอกสารประกอบโดยใช้ Javadoc ซึ่งเป็นตัวสร้างเอกสารสำหรับสร้างเอกสาร API ในรูปแบบ HTML จากซอร์สโค้ด Java รูปแบบของเอกสารที่ใช้โดย Javadoc เป็นมาตรฐานอุตสาหกรรมสำหรับการทำเอกสารคลาส Java และ IDE ที่ได้รับความนิยมสูงสุด เช่น IntelliJ IDEA และ Eclipse จะสร้าง Javadoc HTML โดยอัตโนมัติ ความคิดเห็นเกี่ยวกับเอกสาร Java มีไวยากรณ์ด้านล่าง:
/**
Some important Javadoc comments here
You don’t know it yet, but Javadoc rulez

@author  Java Developer
*/
นี่คือตัวอย่าง: มันเป็นส่วนของคลาส Java Short อย่างไรก็ตาม คุณสามารถดูโค้ดคลาส Java ใดก็ได้จาก IDE ของคุณ (เช่น ใน IntelliJ IDEA จาก Windows เพียงกด ctrl+LBM หรือ ctrl + b (ใน Windows) บนชื่อคลาสหรือเมธอดใดก็ได้)
package java.lang;

import jdk.internal.HotSpotIntrinsicCandidate;
import jdk.internal.misc.VM;

/**
* The {@code Short} class wraps a value of primitive type {@code
* short} in an object.  An object of type {@code Short} contains a
* single field whose type is {@code short}.
*
* <p>In addition, this class provides several methods for converting
* a {@code short} to a {@code String} and a {@code String} to a
* {@code short}, as well as other constants and methods useful when
* dealing with a {@code short}.
*
* @author  Nakul Saraiya
* @author  Joseph D. Darcy
* @see     java.lang.Number
* @since   1.1
*/
public final class Short extends Number implements Comparable<Short> {

   /**
    * A constant holding the minimum value a {@code short} can
    * have, -2<sup>15</sup>.
    */
   public static final short   MIN_VALUE = -32768;

   /**
    * A constant holding the maximum value a {@code short} can
    * have, 2<sup>15</sup>-1.
    */
   public static final short   MAX_VALUE = 32767;

   /**
    * The {@code Class} instance representing the primitive type
    * {@code short}.
    */
   @SuppressWarnings("unchecked")
นี่คือโค้ด Java ของเมธอด println() ที่มือใหม่ทุกคนรู้จักและชื่นชอบพร้อมความคิดเห็นดังกล่าว:
/**
* Prints a String and then terminate the line.  This method behaves as
* though it invokes {@link #print(String)} and then
* {@link #println()}.
*
* @param x  The {@code String} to be printed.
*/
public void println(String x) {
   if (getClass() == PrintStream.class) {
       writeln(String.valueOf(x));
   } else {
       synchronized (this) {
           print(x);
           newLine();
       }
   }
}
Javadoc มีแท็ก Javadoc พิเศษที่มีเครื่องหมาย @ คุณสามารถดูได้ในโค้ดด้านบน ตัวอย่างของแท็ก Javadoc คือ @author ที่เพิ่มชื่อของผู้เขียนคลาส แท็ก Javadoc อื่นคือ @เนื่องจากเพิ่มความคิดเห็นที่ระบุว่าคลาสนี้ถูกใช้ตั้งแต่เวอร์ชัน Java ที่ระบุ การเขียนเอกสาร Javadoc ที่ดีต้องอาศัยความรู้และประสบการณ์ (และความอดทน!) คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Javadoc ได้ ในเอกสารอย่างเป็นทางการวิธีเขียนความคิดเห็น Doc สำหรับเครื่องมือ Javadoc

ป.ล. ตัวอย่างคอมเมนต์ตลกๆ จากชีวิตจริง

/**
*Dear Maintainer
*
*Once you are done trying to 'optimize' this routine,
*and you have realized what a terrible mistake that was,
*please increment the following counter as a warning
*to the next guy.
*
*total_hours_wasted_here = 73
*/
Exception up = new Exception("Something is really wrong.");
throw up;  //ha ha
// When I wrote this, only God and I understood what I was doing
// Now, God only knows
// sometimes I believe compiler ignores all my comments
/**
Always returns true.
*/
public boolean isAvailable() {
return false;
}
เพื่อเสริมสิ่งที่คุณเรียนรู้ เราขอแนะนำให้คุณชมบทเรียนวิดีโอจากหลักสูตร Java ของเรา
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION