1. ลืมเครื่องหมายอัฒภาค
ข้อผิดพลาดที่พบบ่อยที่สุดสำหรับโปรแกรมเมอร์ Java ที่เกี่ยวข้องกับเครื่องหมายอัฒภาค หรือค่อนข้างขาดในที่ที่ควรอยู่
ทุกคำสั่งภายในเมธอดต้องลงท้ายด้วยเครื่องหมายอัฒภาค เครื่องหมายอัฒภาคคือสิ่งที่แยกคำสั่งหรือคำสั่ง: นี่คือวิธีที่เราบอกคอมไพเลอร์ Java ที่คำสั่งหนึ่งสิ้นสุดและคำสั่งถัดไปเริ่มต้น
ตัวอย่างข้อผิดพลาด:
รหัสไม่ถูกต้อง | รหัสที่ถูกต้อง |
---|---|
|
|
|
|
|
|
2. ลืมปิดคำพูด
ข้อผิดพลาดที่พบบ่อยอันดับสองสำหรับผู้มาใหม่กับ Java คือการเขียนสตริงในโค้ดแล้วลืมปิดเครื่องหมายคำพูด
ทุกตัวอักษรของสตริงในโค้ดต้องใส่เครื่องหมายอัญประกาศคู่ (") ทั้งสองด้าน โปรแกรมเมอร์มือใหม่มักจะใส่เครื่องหมายอัญประกาศไว้หน้าข้อความแต่ลืมปิดตอนท้าย
นี่คือตัวอย่างบางส่วน:
รหัสไม่ถูกต้อง | รหัสที่ถูกต้อง |
---|---|
|
|
|
|
|
|
3. ลืมใส่เครื่องหมายบวกเมื่อติดกาวเข้าด้วยกัน
ข้อผิดพลาดทั่วไปอีกประการหนึ่งเมื่อทำงานกับสตริงคือการลืมเขียนเครื่องหมายบวกเมื่อติดสตริงเข้าด้วยกัน ข้อผิดพลาดนี้เกิดขึ้นบ่อยเป็นพิเศษเมื่อข้อความและตัวแปรเชื่อมกันเป็นนิพจน์แบบยาวในโค้ด
นี่คือตัวอย่างบางส่วน:
รหัสไม่ถูกต้อง | รหัสที่ถูกต้อง |
---|---|
|
|
|
|
|
|
4. ลืมปิดวงเล็บปีกกา
นี่เป็นข้อผิดพลาดทั่วไป มีสองสถานการณ์ที่เป็นเรื่องปกติ:
สถานการณ์แรก: คุณตัดสินใจคัดลอกโค้ดจากที่ไหนสักแห่งและพลาดวงเล็บปีกกาไปโดยไม่ได้ตั้งใจ สถานการณ์ที่สอง: คุณเพียงแค่ไม่สร้างปัญหาให้ตัวเองเพื่อให้แน่ใจว่าวงเล็บเปิดทุกวงเล็บตรงกับวงเล็บปิด
เพื่อหลีกเลี่ยงข้อผิดพลาดเหล่านี้ มักจะแนะนำให้โปรแกรมเมอร์มือใหม่เขียนวงเล็บปีกกาปิดไว้ข้างใต้วงเล็บปีกกาเปิด
ตัวอย่าง:
รหัสไม่ถูกต้อง | รหัสที่ถูกต้อง |
---|---|
|
|
|
|
5. ลืมใส่วงเล็บ
ข้อผิดพลาดนี้ส่วนใหญ่มักเกิดจากนักพัฒนาซอฟต์แวร์ที่รู้ภาษาการเขียนโปรแกรมที่ไม่ต้องใช้วงเล็บในสถานการณ์ที่คล้ายคลึงกัน
ความเป็นไปได้อย่างหนึ่งคือพวกเขาลืมใส่วงเล็บที่ส่วนท้ายของเมธอด:
ความเป็นไปได้อีกอย่างคือพวกเขาลืมที่จะห่อเงื่อนไขของif-else
คำสั่งในวงเล็บ
ตัวอย่าง:
รหัสไม่ถูกต้อง | รหัสที่ถูกต้อง |
---|---|
|
|
|
|
6. การเขียนmain
การประกาศ method ไม่ถูกต้อง
ทันทีที่พวกเขาประกาศmain
วิธีการนองเลือด! อาจไม่มีอะไรที่ทำให้มือใหม่สะดุดได้เท่ากับวิธีการแย่ๆ นี้ ที่สำคัญพวกเขามักจะแปลกใจและสงสัยว่าทำไมรายการของพวกเขาถึงไม่เริ่ม?
และแน่นอนว่าไม่ต้องโทษโปรแกรมเมอร์ แต่โทษโปรแกรม คอมไพเลอร์ ตัวตรวจสอบโค้ด เครื่อง Java ฯลฯ รายชื่อแพะรับบาปไม่มีที่สิ้นสุด
ตัวอย่าง:
รหัสไม่ถูกต้อง | คำอธิบาย |
---|---|
|
public ที่ขาดหายไป |
|
static ที่ขาดหายไป |
|
void ที่ขาดหายไป |
|
public และstatic ขาดหายไป |
|
[] ที่ขาดหายไป |
|
String[] args ที่ขาดหายไป |
|
เรามีint แทนvoid |
7. ชื่อไฟล์แตกต่างจากชื่อคลาส
ตามมาตรฐาน Java คลาส Java ทั้งหมดต้องเก็บไว้ในไฟล์ที่มีชื่อเดียวกับชื่อคลาส และดังที่ได้กล่าวไว้ก่อนหน้านี้ กรณีของจดหมายมีความสำคัญที่นี่:
ชื่อไฟล์ | ชื่อชั้น | บันทึก |
---|---|---|
|
|
ทุกอย่างปกติดี
|
|
|
ชื่อไฟล์มีตัวอักษรที่ไม่จำเป็นs |
|
|
ชื่อไฟล์ขึ้นต้นด้วยตัวพิมพ์เล็ก |
|
|
นามสกุลไฟล์.txt แทน.java |
|
|
ชื่อคลาสขึ้นต้นด้วยตัวพิมพ์เล็ก
|
ที่จริงแล้ว สามารถประกาศคลาสได้หลายคลาสในไฟล์ที่มีนามสกุล .java แต่มีเพียงคลาสเดียวเท่านั้นที่สามารถมีคำนำpublic
หน้าชื่อคลาสได้ และนี่คือชื่อที่ต้องตรงกับชื่อไฟล์
ไฟล์ .java ต้องมีคลาสที่มีชื่อเหมือนกับชื่อไฟล์เสมอ และคลาสนั้นจำเป็นต้องมีตัวpublic
แก้ไข ตัวอย่าง:
Solution.java |
---|
|
นอกจากนี้ ภาษา Java ให้คุณเขียนคลาสภายในคลาสได้ นี่เป็นอีกวิธีหนึ่งในการหลีกเลี่ยงข้อจำกัดข้างต้น หากมีการประกาศคลาสสาธารณะ (คลาสที่มีpublic
ตัวดัดแปลง) ในไฟล์และมีชื่อเดียวกับชื่อไฟล์ คุณสามารถประกาศคลาสได้มากเท่าที่คุณต้องการภายในคลาสสาธารณะนี้ ที่กล่าวว่าพวกเขาจะไม่ใช่ชั้นเรียนธรรมดาอีกต่อไป แต่จะเป็นคลาสภายในหรือคลาสซ้อนกันแทน ตัวอย่าง:
Solution.java |
---|
|
8. ลืมที่จะเขียนpackage
เนื่องจากโปรแกรมมักจะมีคลาสเป็นพันๆ คลาส จึงเป็นเรื่องยากที่จะหาชื่อที่เรียบง่าย เข้าใจได้ และไม่ซ้ำกันสำหรับทุกคลาส นั่นเป็นเหตุผลที่ใน Java เป็นเรื่องปกติที่จะจัดกลุ่มคลาสเป็นแพ็คเกจโดยใช้package
คำสำคัญ วิธีการจัดกลุ่มไฟล์เป็นโฟลเดอร์
นั่นเป็นเหตุผลที่แต่ละคลาสควรเริ่มต้นด้วยการระบุแพ็คเกจที่เป็นของ ตัวอย่าง
รหัสไม่มีแพ็คเกจ | ตัวอย่างที่แก้ไขแล้ว |
---|---|
|
|
9. ลืมใส่import
ถ้าเราต้องการใช้คลาสของคนอื่นในโปรแกรมของเรา เรามีสองทางเลือก: ทุกที่ในโค้ดของเรา เราต้องเขียนชื่อแพ็คเกจก่อนชื่อคลาสด้วย อีกทางหนึ่ง เราสามารถเขียนชื่อคลาสแบบเต็มด้วยimport
คีย์เวิร์ดครั้งเดียว
ตัวอย่าง:
โดยไม่ต้องใช้การนำเข้า | โดยใช้การนำเข้า |
---|---|
|
|
ทั้งสองตัวเลือกทำงานได้ แต่ถ้าคุณเพียงแค่เขียนScanner
โค้ดของคุณโดยไม่เพิ่มimport
คอมไพลเลอร์จะไม่สามารถเข้าใจได้ว่าต้องใช้แพ็คเกจใดในคลาสScanner
และโปรแกรมของคุณจะไม่คอมไพล์
GO TO FULL VERSION