คอมพิวเตอร์ Windows อินเทอร์เน็ต

ไวยากรณ์ของจาวา โครงสร้างแบบมีเงื่อนไข - วิธีการเริ่มต้นสำหรับอินเทอร์เฟซ

ต้องตรงกับชื่อของคลาสที่มีการเรียกเมธอด main () เมื่อเครื่อง Java เริ่มทำงาน

  • Object - คลาสที่จะสืบทอด ทั้งหมดออบเจ็กต์ใน Java รวมถึงอาร์เรย์และสตริง ()
  • ตัวระบุการเข้าถึงเป็นรายบุคคลสำหรับสมาชิกแต่ละคน (ระบุไว้ก่อนการประกาศ)
  • โดยค่าเริ่มต้น สมาชิกชั้นเรียนทุกคนจะเปิดขอบเขต บรรจุุภัณฑ์... ขอบเขตเริ่มต้นเป็นจุดตัดระหว่างส่วนตัวและการป้องกัน ดูที่
  • แต่ละไฟล์ * .java สามารถมี หนึ่งเดียวคลาสที่ประกาศเป็นสาธารณะและสามารถเข้าถึงได้จากภายนอก
  • คำจำกัดความและการประกาศของคลาสจะอยู่ในไฟล์เดียวเสมอ เป็นไปไม่ได้ที่จะวางต้นแบบไว้ในส่วนหัว
  • พอยน์เตอร์หายไป
  • ตัวแปรคลาสทั้งหมดอ้างอิงถึงอ็อบเจกต์ ไม่ใช่ตัวอ็อบเจกต์เอง การเริ่มต้นใช้งานจะต้องดำเนินการผ่าน new<конструктор-класса>(...) .
  • ซึ่งเป็นรากฐาน วรรคก่อน- เมื่อกำหนดตัวแปรอ็อบเจ็กต์หนึ่งให้กับอีกตัวแปรหนึ่ง เฉพาะการอ้างอิงเท่านั้นที่เปลี่ยนแปลง แต่ไม่ใช่การคัดลอกอ็อบเจ็กต์
  • ตัวแปรในฟังก์ชันจะถูกส่งผ่านด้วยค่าถ้าเป็น ประเภทประถม(int, byte, long, ฯลฯ ...) หรือโดยการอ้างอิงหากเป็นวัตถุ
  • สมาชิกสแตติกสาธารณะของคลาสสามารถเข้าถึงได้ผ่านตัวดำเนินการจุด และไม่ผ่าน :: ซึ่งในความคิดของฉันทำให้เกิดความสับสนจากภายนอก
  • ไม่มีตัวทำลาย แต่มีการสิ้นสุด ()
  • Finalize () ไม่ควรสับสนกับ C ++ destructor จบ () เรียกว่า เก็บขยะเท่านั้นซึ่งไม่เกี่ยวอะไรกับวัตถุที่อยู่นอกขอบเขตและไม่มีการอ้างอิงถึงวัตถุนี้อย่างน้อยหนึ่งครั้ง
  • คุณสามารถบังคับการรวบรวมขยะโดยเรียกใช้เมธอด Runtime.gc () บนอ็อบเจ็กต์รันไทม์ปัจจุบันหรือเมธอด System.gc () แบบคงที่ ตัดสินโดยการทดลองที่ดำเนินการ การเพิ่มความจำให้ใช้ได้เฉพาะภายใน เครื่องเสมือน Java และหน่วยความจำที่จัดสรรครั้งเดียวในระบบปฏิบัติการจะไม่ส่งคืนจนกว่าเครื่องจะสิ้นสุด
  • ในการเข้ารหัสสไตล์ Java ฟังก์ชันจะส่งข้อยกเว้นแทนที่จะส่งคืนโค้ด เป็นระบบข้อผิดพลาดหรือข้อผิดพลาดในตรรกะของเครื่องเสมือน ดังนั้น จะต้องดำเนินการฟังก์ชันจำนวนมากภายในบล็อก try (...) catch (...) (...) ที่จัดการข้อยกเว้น หรือวิธีการเรียกฟังก์ชันเหล่านี้จะต้องระบุผ่านรายการข้อยกเว้นที่ส่งออกมาอย่างชัดเจน โดยฟังก์ชั่นเหล่านี้ที่ไม่ได้จัดการโดยพวกเขาสำหรับการประมวลผลโดยวิธีการของพวกเขาขึ้น call stack
  • ข้อยกเว้นแบ่งออกเป็นและ
  • บล็อก try (...) ยังสามารถจบลงด้วยบล็อกสุดท้าย (...) ซึ่งถูกดำเนินการโดยไม่คำนึงถึงการมีอยู่ / ไม่มีข้อยกเว้นในบล็อก try (...) ก่อนหน้า มันสะดวกที่จะใช้สิ่งนี้เพื่อดำเนินการใดๆ ที่จำเป็น โดยไม่คำนึงถึงผลลัพธ์ของการดำเนินการบล็อกของรหัส เช่น เพื่อปล่อยทรัพยากรทั้งหมดที่จัดสรรในนั้นโดยอัตโนมัติ
  • char ไม่ใช่ประเภทไบต์เดียวเหมือน C / C ++ เป็นประเภท 16 บิตที่รองรับ ยูนิโค้ดสตริง
  • bool เรียกว่าบูลีนในภาษาจาวา
  • โครงสร้างแบบมีเงื่อนไขยอมรับ เท่านั้นประเภทของตัวแปรหรือนิพจน์บูลีน ซึ่งหมายความว่ารหัสมีลักษณะดังนี้:
    int ก; ... การกระทำกับตัวแปร a ...; ถ้า (ก) (...)
    ไม่จริงในมุมมอง ไวยากรณ์ Javaและจะไม่รวบรวม
  • ค่าคงที่ถูกประกาศให้สิ้นสุดและไม่ใช่ค่าคงที่
  • อาร์เรย์ทั้งหมดเป็นวัตถุ
  • แม้แต่ค่าคงที่สตริง (เช่น "const สตริงใดๆ") ก็เป็นวัตถุ
  • สำหรับสตริง (คลาส String) มีการกำหนดโอเปอเรเตอร์เพียงตัวเดียว - + การต่อกัน
  • การเปรียบเทียบสตริงทำได้โดยใช้เมธอด bool equals () ของคลาส String เช่น s1.equals (s2)
  • เนื้อหาของวัตถุสตริงเป็นค่าคงที่และไม่ได้หมายความถึงการเปลี่ยนแปลงองค์ประกอบเดียวของสตริง ซึ่งทำขึ้นเพื่อเหตุผลด้านประสิทธิภาพ หากคุณต้องการการดำเนินการดังกล่าว คุณสามารถใช้คลาส StringBuffer
  • เมื่อเชื่อมสตริงที่ยังไม่ได้กำหนดค่าเริ่มต้นกับสตริงที่ไม่ว่าง คุณจะได้รับ null + non-empty-stringตัวอย่างเช่น s + = "| string"; จะเท่ากับ "null | string"
  • อาร์เรย์มีความยาวตัวแปรสมาชิกสาธารณะ สตริงไม่มีแต่ใช้วิธีความยาว () แทน
  • Java ไม่สนับสนุนมรดกหลายรายการ ฟังก์ชันบางอย่างดำเนินการผ่าน "อินเทอร์เฟซ" อินเทอร์เฟซรองรับการใช้งาน "สืบทอด" หลายรายการของอินเทอร์เฟซหลายรายการในคลาสเดียว และโดยทั่วไป (อินเทอร์เฟซ) จำนวนมากถึงหลาย (คลาส) ความสัมพันธ์และในทางกลับกัน
  • อินเตอร์เฟสอนุญาตให้สร้างลิงค์ซึ่งคุณสามารถอ้างถึงอ็อบเจ็กต์ของคลาสที่ใช้อินเตอร์เฟสเหล่านี้ จริงอยู่ การค้นหาแบบไดนามิกสำหรับวิธีการที่เหมาะสมเมื่อเข้าถึงผ่านอินเทอร์เฟซอ้างอิงต้องใช้ค่าใช้จ่ายจำนวนมาก ดังนั้นจึงไม่พึงปรารถนา
  • แทนที่จะใช้ enums คุณสามารถใช้อินเทอร์เฟซได้โดยไม่ต้องมีการประกาศเมธอด ในกรณีนี้ ตัวแปรอินเทอร์เฟซทั้งหมดจะต้องเริ่มต้นเมื่อกำหนดอินเทอร์เฟซและค่าจะคงที่โดยอัตโนมัติ หลังจากนั้น พวกเขาสามารถ "เชื่อมต่อ" กับคลาสที่กำหนดไว้ได้โดยใช้อุปกรณ์ต่างๆ
  • นอกจากนี้ เนื่องจาก JDK 5 มี ภายนอกการแจงนับแบบคลาสสิก - enum อันที่จริง นี่ไม่ใช่แค่รายการของค่าคงที่ที่มีชื่อเท่านั้น แต่เป็นคลาสพิเศษที่สืบทอดมาจากซูเปอร์คลาส Enum แต่ละองค์ประกอบของการแจงนับเป็นวัตถุของคลาสนี้ ค่าตัวเลขของอ็อบเจกต์การแจงนับสามารถรับได้โดยใช้ฟังก์ชันลำดับในตัว
  • กำหนดเอง โอเปอเรเตอร์โอเวอร์โหลดคุ้นเคยใน C ++ ใน Java ไม่รองรับ.
  • ในการทำงานในสภาพแวดล้อมของวัตถุด้วย "ประเภทดั้งเดิม" (int, float, char, ฯลฯ ... ) Java ใช้ ออโต้บ็อกซ์ / ออโต้บ็อกซ์เป็นประเภทเสื้อคลุม (Integer, Float, Character ฯลฯ ...) อันที่จริง นี่คือการใช้งานโอเปอเรเตอร์โอเวอร์โหลดสำหรับคลาสในตัวหลายคลาสที่ใช้ฟังก์ชันของประเภทดั้งเดิม + เมธอดอ็อบเจ็กต์
  • super - คำหลักที่อนุญาตให้คุณเรียกตัวสร้างของ superclass จาก subclass หรือเข้าถึงสมาชิกของ superclass ของสมาชิกที่ซ่อนอยู่ของ subclass
    • เมื่อใช้เป็นคอนสตรัคเตอร์ - super ควรมาก่อนเสมอโอเปอเรเตอร์ในตัวสร้างของคลาสย่อย
  • เพื่อกำหนด นามธรรมเมธอด, คีย์เวิร์ด abstract ถูกใช้, คลาสที่มีเมธอด abstract จะต้องถูกกำหนดเป็นคลาสนามธรรมด้วย ....
  • สุดท้ายห้ามวิธีการเอาชนะในคลาสย่อย สำหรับเมธอด "สั้น" ที่ประกาศเป็นขั้นสุดท้าย คีย์เวิร์ดนี้มีผลเช่นเดียวกับอินไลน์ใน C ++ - ในคลาสย่อยแทนที่จะเรียกใช้ฟังก์ชัน อาจจะแทรก bytecode วิธี superclass ในการเรียกรหัสวิธีการเรียน
  • ขั้นสุดท้ายยังห้ามมิให้สืบทอดจากคลาสที่ประกาศเป็นขั้นสุดท้าย
  • เนมสเปซ(เนมสเปซ) ใน Java ถูกนำมาใช้เป็น แพ็คเกจ(บรรจุุภัณฑ์).
  • หากต้องการเชื่อมต่อกับ แพ็คเกจใช้การนำเข้า คุณยังสามารถใช้การนำเข้าแบบคงที่ ..(*|) เพื่อนำเข้าสมาชิกแบบคงที่ของคลาส
  • Java รองรับเธรดผ่านคลาสเธรดในตัวและอินเทอร์เฟซ Runable สำหรับการซิงโครไนซ์ ให้ใช้ตัวระบุที่ซิงโครไนซ์ก่อนเมธอดในคำอธิบายคลาส หรือซิงโครไนซ์ ( ) (...) สำหรับบล็อกของรหัสที่ซิงโครไนซ์กับ ... สำหรับสัญญาณระหว่างเธรดที่ซิงโครไนซ์ จะใช้เมธอดของคลาสอ็อบเจ็กต์หลัก: wait () / notify () / notifyAll ()
  • ชั่วคราว - ตัวแก้ไขที่ระบุว่าค่าของวัตถุ / ตัวแปรไม่จำเป็นต้อง "ถือ" เมื่อบันทึกวัตถุเช่นเมื่อทำให้เป็นอนุกรมก่อนที่จะเขียนลงในดิสก์ / ฐานข้อมูล มีเหตุผลที่จะทำเครื่องหมายตัวแปรที่มี ตัวระบุที่ไม่ซ้ำรันไทม์และข้อมูลอื่นที่คล้ายคลึงกันซึ่งสมเหตุสมผลเฉพาะในอินสแตนซ์ปัจจุบันของกระบวนการจาวาเท่านั้น
  • ตัวอย่างของ - การดำเนินการรันไทม์ส่งคืน จริงถ้า มีลิงค์ไปยังชั้นเรียน หรือจะนำไปอ้างอิงถึงคลาสนี้ก็ได้ มิฉะนั้น เท็จ.
  • ยืนยัน - การยืนยัน Java ถูกใช้ในลักษณะเดียวกับใน C: assert [: คำอธิบายล้มเหลวการยืนยัน] แต่ ต้องจำไว้ว่าพวกเขาจะ "ฝัง" ลงใน bytecode ที่คอมไพล์แล้ว และสามารถรวมด้วย วิ่งจาวา-อี
  • this (...) - สามารถใช้ภายใน Constructor ของคลาสเพื่อเรียก Constructor อื่นในคลาสเดียวกัน โดยจับคู่ลายเซ็นของอาร์กิวเมนต์
  • แทน แม่แบบถูกนำมาใช้ ลักษณะทั่วไป, ดูคล้ายกันมาก: class CLASS_NAME (...) โดยทั่วไป เป็นสิ่งต้องห้ามใช้ ดั้งเดิมประเภท ( int, ไบต์, ถ่าน, ฯลฯ ...). พารามิเตอร์ที่ใช้ได้ เฉพาะชั้นเรียน.
    นอกจากนี้ยังรองรับ ประเภทจำกัดโดยการระบุซูเปอร์คลาสสำหรับคลาสพารามิเตอร์ ตัวอย่างเช่น การประกาศคลาส "generic class" CLASS_NAME ซึ่งอนุญาตให้ใช้เฉพาะคลาสลูกหลานของคลาสตัวเลขทั่วไปเท่านั้น
  • สะดวกในการใช้ System.arraycopy () เพื่อคัดลอกอาร์เรย์อย่างรวดเร็ว
  • การเขียนโปรแกรมกำลังเขียนซอร์สโค้ดของโปรแกรมในภาษาโปรแกรมใดภาษาหนึ่ง มีมากมาย ภาษาที่แตกต่างกันการเขียนโปรแกรมด้วยโปรแกรมทุกประเภทที่สร้างขึ้นเพื่อแก้ปัญหาบางอย่าง ภาษาโปรแกรมคือชุดของคำสงวนที่จะเขียน แหล่งที่มาโปรแกรม ระบบคอมพิวเตอร์ยังไม่สามารถ (ยัง) เข้าใจภาษามนุษย์ได้ และยิ่งไปกว่านั้น ตรรกะของมนุษย์ (โดยเฉพาะเพศหญิง) ดังนั้นโปรแกรมทั้งหมดจึงถูกเขียนขึ้นในภาษาโปรแกรม ซึ่งจะแปลเป็นภาษาคอมพิวเตอร์หรือรหัสเครื่องในภายหลัง ระบบที่แปลซอร์สโค้ดของโปรแกรมเป็นรหัสเครื่องนั้นซับซ้อนมากและตามกฎแล้วระบบเหล่านี้ถูกสร้างขึ้นโดยโปรแกรมเมอร์มากกว่าหนึ่งโหลเดือนและมากกว่าหนึ่งโหล ระบบดังกล่าวเรียกว่าสภาพแวดล้อมหรือเครื่องมือการเขียนโปรแกรมแบบรวม

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

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

    • "พิมพ์แบบคงที่".
    • การเขียนโปรแกรมที่เป็นแกนหลักเป็นเรื่องเกี่ยวกับการทำงานกับข้อมูลอย่างแท้จริง
    ไม่มีการเชื่อมต่อระหว่างสองภาษาอย่างแน่นอน

    ระบบการเขียนโปรแกรมเป็นสภาพแวดล้อมการมองเห็นที่ต้องใช้ความคิดอย่างมาก ซึ่งคุณสามารถเขียนซอร์สโค้ดของโปรแกรม แปลเป็นรหัสเครื่อง ทดสอบ ดีบัก และอื่นๆ อีกมากมาย นอกจากนี้ยังมีโปรแกรมที่อนุญาตให้คุณดำเนินการดังกล่าวข้างต้นโดยใช้บรรทัดคำสั่ง

    คุณอาจเคยได้ยินคำว่า "โปรแกรมเขียนขึ้นภายใต้ Windows หรือภายใต้ Linux, Unix" มากกว่าหนึ่งครั้ง ความจริงก็คือสภาพแวดล้อมการเขียนโปรแกรมสำหรับการแปลภาษาการเขียนโปรแกรมเป็นรหัสเครื่องสามารถเป็นได้สองประเภท - คอมไพเลอร์และล่าม การคอมไพล์หรือตีความโปรแกรมระบุว่าโปรแกรมจะทำงานบนอุปกรณ์ต่อไปอย่างไร โปรแกรมที่เขียนด้วยภาษา Java ทำงานบนพื้นฐานของการตีความเสมอ ในขณะที่โปรแกรมที่เขียนด้วย C / C ++ - การรวบรวม ความแตกต่างระหว่างสองวิธีนี้คืออะไร?

    ภาษาทั้งสองเขียนต่างกันและทำงานต่างกัน แต่ทั้งสองภาษาช่วยให้เราทำงานกับฟังก์ชันการเขียนโปรแกรมได้ เช่น ตัวแปร เมธอด โอเปอเรเตอร์ หรือแม้แต่อ็อบเจกต์ ภาษาคือชุดของคำหลักและสัญลักษณ์ที่เรารวบรวมเพื่อแสดงว่าเราต้องการให้โค้ดทำงานอย่างไร

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

    คอมไพเลอร์หลังจากเขียนซอร์สโค้ดในขณะที่คอมไพล์แล้ว จะอ่านซอร์สโค้ดทั้งหมดของโปรแกรมทันทีและแปลเป็นรหัสเครื่อง หลังจากที่โปรแกรมมีอยู่โดยรวมและสามารถดำเนินการได้ในนั้นเท่านั้น ระบบปฏิบัติการที่มันเขียน ดังนั้นโปรแกรมที่เขียนภายใต้ Windows จึงไม่สามารถทำงานได้ภายใต้ Linux และในทางกลับกัน ล่ามจะก้าวผ่านหรือดำเนินการทีละบรรทัดของโปรแกรมทุกครั้งที่มีการดำเนินการ ระหว่างการตีความ โค้ดที่รันไม่ได้จะถูกสร้างขึ้น แต่เป็นโค้ดเสมือน ซึ่งถูกรันโดยเครื่องเสมือน Java ในเวลาต่อมา ดังนั้นบนแพลตฟอร์มใด ๆ - Windows หรือ Linux โปรแกรม Java สามารถดำเนินการได้ในลักษณะเดียวกันหากมีเครื่อง Java เสมือนในระบบซึ่งเรียกอีกอย่างว่า Runtime System

    - วิธีการเริ่มต้นสำหรับอินเทอร์เฟซ

    ต่อไปนี้คือคีย์เวิร์ดบางคำที่ระบุประเภทของข้อมูลที่เราจะใช้และจัดเก็บไว้ในตัวแปร เนื่องจากตำแหน่งทศนิยมสามารถเปลี่ยนหรือลอยได้ สิ่งสำคัญคือต้องรู้ว่าค่าเหล่านี้อาจไม่ถูกต้องในทางเทคนิค ชนิดข้อมูลพื้นฐานอื่นๆ ได้แก่ ไบต์ สั้นและยาว ออบเจ็กต์แตกต่างจากชนิดข้อมูลพื้นฐานตรงที่มีคุณสมบัติและวิธีการที่ซับซ้อนกว่า ในขณะที่ชนิดข้อมูลพื้นฐานมีข้อจำกัดและเรียบง่าย ตัวแปรนั้นเป็นคอนเทนเนอร์ที่ใช้ในการเก็บข้อมูล

    การเขียนโปรแกรมเชิงวัตถุ

    การเขียนโปรแกรมเชิงวัตถุขึ้นอยู่กับวัตถุซึ่งค่อนข้างคล้ายกับโลกของเรา หากคุณมองไปรอบ ๆ ตัวคุณ คุณจะพบบางสิ่งที่จะช่วยให้คุณเข้าใจรูปแบบการเขียนโปรแกรมดังกล่าวได้ชัดเจนยิ่งขึ้น ตัวอย่างเช่น ตอนนี้ฉันกำลังนั่งอยู่ที่โต๊ะและพิมพ์บทนี้บนคอมพิวเตอร์ที่ประกอบด้วยจอภาพ หน่วยระบบ แป้นพิมพ์ เมาส์ ลำโพง และอื่นๆ ทุกส่วนเหล่านี้เป็นวัตถุที่ประกอบขึ้นเป็นคอมพิวเตอร์ เมื่อทราบสิ่งนี้แล้ว มันง่ายมากที่จะกำหนดแบบจำลองทั่วไปบางประเภทสำหรับการทำงานของคอมพิวเตอร์ทั้งเครื่อง หากคุณไม่เข้าใจความซับซ้อนของคุณสมบัติซอฟต์แวร์และฮาร์ดแวร์ของคอมพิวเตอร์ เราสามารถพูดได้ว่าวัตถุหน่วยระบบดำเนินการบางอย่างที่แสดงโดยวัตถุตรวจสอบ ในทางกลับกัน อ็อบเจ็กต์ Keyboard สามารถแก้ไขหรือตั้งค่าการดำเนินการสำหรับออบเจ็กต์ System unit ที่ส่งผลต่อการทำงานของอ็อบเจ็กต์ Monitor ได้ กระบวนการที่นำเสนอนี้แสดงให้เห็นถึงลักษณะที่ดีของระบบการเขียนโปรแกรมเชิงวัตถุทั้งหมด

    นี่คือกฎไวยากรณ์พื้นฐาน

    ลองมาดูตัวอย่างกัน มาดูเลขแต่ละส่วนกัน คำแรกในการประกาศตัวแปรคือประเภทข้อมูล ซึ่งจะบอกเราว่าข้อมูลใดจะถูกเก็บไว้ในตัวแปร คำที่สองคือชื่อตัวแปร ซึ่งสามารถเป็นอะไรก็ได้ที่คุณต้องการ โดยทำตามกฎพื้นฐานสองสามข้อ ชื่อตัวแปรต้องไม่มีช่องว่างหรือ อักขระพิเศษ; มีได้เฉพาะตัวอักษร ตัวเลข และขีดล่างเท่านั้น เครื่องหมายเท่ากับเป็นตัวดำเนินการนั่นคือดำเนินการบางอย่างสำหรับเรา มันเป็นตัวดำเนินการมอบหมาย หมายความว่าเราใช้มันเพื่อกำหนดค่าให้กับตัวแปร สุดท้าย อักขระตัวสุดท้ายในบรรทัดนี้คือเครื่องหมายอัฒภาค ซึ่งใช้เพื่อทำให้คำสั่งนี้สมบูรณ์ อย่างไรก็ตาม ไม่จำเป็นต้องขึ้นต้นด้วยตัวเลข ... ตัวอย่างอื่นๆ ของการประกาศตัวแปรโดยใช้ประเภทข้อมูลพื้นฐานที่เราได้กล่าวถึงมีดังนี้

    จินตนาการถึงพลังบางอย่าง ซอฟต์แวร์มีโค้ดหลายแสนบรรทัด โปรแกรมทั้งหมดจะดำเนินการทีละบรรทัด ทีละบรรทัด และโดยหลักการแล้ว แต่ละบรรทัดของโค้ดที่ตามมาจะต้องเชื่อมโยงกับโค้ดบรรทัดก่อนหน้า หากคุณไม่ได้ใช้โปรแกรมเชิงวัตถุ และเมื่อคุณต้องการเปลี่ยนสิ่งนี้ รหัสโปรแกรมตัวอย่างเช่น หากคุณต้องการปรับปรุงองค์ประกอบบางอย่าง คุณจะต้องทำงานมากกับซอร์สโค้ดทั้งหมดของโปรแกรมนี้

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

    ทันทีหลังชื่อ เราจะเห็นวงเล็บสองอันที่ไม่มีอะไรคั่นกลาง จำเป็นต้องใช้วงเล็บ แต่เมื่อว่าง แสดงว่าเราไม่ได้ส่งข้อมูลหรือตัวแปรใดๆ เมื่อเรียกใช้เมธอด หากมีการรวมตัวแปรตั้งแต่หนึ่งตัวขึ้นไประหว่างวงเล็บ เราจะต้องส่งค่าหรือตัวแปรที่เกี่ยวข้องในวงเล็บเมื่อเราเรียกวิธีนี้

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

    บรรทัดที่ 1 ลงท้ายด้วยเหล็กดัดลอนแบบเปิด และวงเล็บปีกกาปิดที่สอดคล้องกันจะอยู่บนเส้น เอกสารนี้ถูกเก็บถาวรและไม่รองรับ การเปลี่ยนแปลงที่ชัดเจนที่สุดเมื่อสลับไปมาระหว่างภาษาโปรแกรมคือการเปลี่ยนแปลงทางไวยากรณ์

    แม้ว่าไวยากรณ์ของแต่ละภาษาจะแสดงวิธีการต่างกัน แต่การทำงานก็เหมือนกัน คำอธิบาย ฟังก์ชั่นพารามิเตอร์ และค่าส่งคืนอ็อบเจ็กต์ ใช้ได้กับทุกภาษา โดยมีข้อยกเว้นบางประการ ตัวอย่างเช่น พิจารณาฟังก์ชันสแควร์เมื่อใช้งานในภาษาสคริปต์ทั้งสามนี้

    การเขียนโปรแกรมเชิงวัตถุสะท้อนให้เห็นแก่นแท้ของปัญหาที่กำลังแก้ไขได้อย่างง่ายดายและชัดเจน และที่สำคัญที่สุดคือทำให้สามารถลบวัตถุที่ไม่จำเป็นออกได้โดยปราศจากอคติต่อโปรแกรมทั้งหมดโดยแทนที่วัตถุเหล่านี้ด้วยวัตถุที่ใหม่กว่า ดังนั้น ความสามารถในการอ่านโดยรวมของซอร์สโค้ดของโปรแกรมทั้งหมดจึงง่ายขึ้นมาก สิ่งสำคัญคือต้องใช้รหัสเดียวกันในโปรแกรมที่ต่างกันโดยสิ้นเชิง

    ตัวดำเนินการเพิ่มและลดค่า

    โปรดทราบว่าภาษาสคริปต์ไม่เหมือนกับภาษาโปรแกรม ที่พิมพ์แบบหลวมๆ กล่าวอีกนัยหนึ่ง คุณไม่จำเป็นต้องระบุชนิดข้อมูลของพารามิเตอร์หรือค่าส่งคืนเมื่อประกาศฟังก์ชัน ตัวแปรจะถูกแปลงเป็นชนิดข้อมูลที่เหมาะสมโดยอัตโนมัติ

    ความคล้ายคลึงกันนี้เป็นเพียงผิวเผินเท่านั้น ตอนนี้เรามาดูกันว่าตัวแปร class, object, method และ instance หมายถึงอะไร ตัวอย่าง: สุนัขมีเงื่อนไข - สี, ชื่อ, สายพันธุ์, เช่นเดียวกับพฤติกรรมเช่นหางม้วน, เห่า, อาหาร ซึ่งอยู่ในเมธอดที่เขียนตรรกะ ข้อมูลได้รับการประมวลผลและดำเนินการทั้งหมด ตัวแปรอินสแตนซ์ แต่ละอ็อบเจ็กต์มีชุดตัวแปรอินสแตนซ์เฉพาะของตัวเอง สถานะของวัตถุถูกสร้างขึ้นโดยค่าที่กำหนดให้กับตัวแปรอินสแตนซ์เหล่านี้

    • วัตถุ
    • วัตถุมีสถานะและพฤติกรรม
    • คลาสสามารถมีได้หลายวิธี
    มาดูวิธีการบันทึกไฟล์ คอมไพล์ และรันโปรแกรมกัน

    ชั้นเรียน

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

    ทำตามขั้นตอนต่อไป -. เปิดหน้าต่างพรอมต์คำสั่งและเปลี่ยนเป็นไดเร็กทอรีที่คุณบันทึกคลาส หากมีการใช้คำหลายคำเพื่อสร้างชื่อคลาส แต่ละอักษรตัวแรกของคำแรกจะต้องเป็นตัวพิมพ์ใหญ่ ชื่อเมธอดทั้งหมดต้องขึ้นต้นด้วยอักษรตัวพิมพ์เล็ก

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

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

    ตัวระบุทั้งหมดต้องขึ้นต้นด้วยตัวอักษร สัญลักษณ์สกุลเงิน หรือเครื่องหมายขีดล่าง

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

    เราจะพิจารณามากขึ้น รายละเอียดเกี่ยวกับโมดิฟายเออร์ในหัวข้อถัดไป Local Variables Class Variables ตัวแปรอินสแตนซ์ ... อาร์เรย์คืออ็อบเจ็กต์ที่เก็บตัวแปรประเภทเดียวกันหลายตัว อย่างไรก็ตาม อาร์เรย์นั้นเป็นวัตถุบนฮีป เราจะดูวิธีการประกาศ สร้าง และเริ่มต้นในบทต่อไป

    วิธีการ

    เมื่อได้รับตัวอย่างการเล่น ไฟล์เสียงจากนั้นมีการกล่าวถึงการให้คำสั่งหรือข้อความบนพื้นฐานของการดำเนินการบางอย่าง งานของการดำเนินการได้รับการแก้ไขโดยใช้วิธีการที่แต่ละวัตถุมี เมธอดคือชุดคำสั่งที่คุณสามารถดำเนินการบางอย่างกับอ็อบเจ็กต์ได้

    เพิ่มขึ้นและลดลง

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

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

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

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

    แนวคิดและหลักการการเขียนโปรแกรมเชิงวัตถุ

    ติดตามเนื้อหาเพิ่มเติมในชุดนี้ ค้นหาสิ่งที่คาดหวังจากบทช่วยสอนนี้และวิธีใช้ประโยชน์สูงสุดจากบทช่วยสอนนี้

    • บันทึกไฟล์ลงในฮาร์ดไดรฟ์เมื่อได้รับแจ้ง
    • เมื่อการดาวน์โหลดเสร็จสิ้น ให้รันโปรแกรมติดตั้ง
    สำหรับตอนนี้ ให้ยึดตามเปอร์สเปคทีฟและมุมมองเริ่มต้น สภาพแวดล้อมการพัฒนาของคุณพร้อมสำหรับการดำเนินการ กระบวนทัศน์การเขียนโปรแกรมแบบมีโครงสร้างนั้นขับเคลื่อนด้วยข้อมูลอย่างมาก: คุณมีโครงสร้างข้อมูล จากนั้นคำสั่งโปรแกรมจะทำงานกับข้อมูลนั้น

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

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

    ไวยากรณ์ Java และความหมาย

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

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

    คลาสโฟน
    {
    รวม () วิธีการ
    {
    // การดำเนินการเพื่อเปิดโทรศัพท์
    }
    ปิดการใช้งาน () วิธีการ
    {
    // การดำเนินการเพื่อปิดโทรศัพท์
    }
    }

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

    ตอนนี้เรามาเขียนคลาสเดียวกันใน Java เท่านั้น

    คลาสโทรศัพท์
    {
    เป็นโมฆะเมื่อ ()
    {
    // เนื้อหาของ on () วิธีการ
    }
    ถือเป็นโมฆะ ()
    {
    // เนื้อหาของ off () method
    }
    }

    คีย์เวิร์ด class ในภาษา Java ประกาศคลาส ตามด้วยชื่อของคลาสเอง ในกรณีของเรา นี่คือโทรศัพท์ เพียงไม่กี่คำเกี่ยวกับการลงทะเบียนบันทึก ในเกือบทุกภาษาโปรแกรม สิ่งสำคัญคือต้องเก็บชื่อไว้ในกรณีที่สร้างชื่อขึ้นมา หากคุณเขียน Telefon การสะกดเช่น telefon หรือ TELefoN จะทำให้เกิดข้อผิดพลาดระหว่างการรวบรวม อย่างที่เขียนไว้แต่แรก จึงต้องเขียนต่อไป

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

    มีสองวิธีในเนื้อหาของคลาส Telefon: เปิด () - เปิดโทรศัพท์และปิด () วิธี - ปิดโทรศัพท์ ทั้งสองวิธีมีเนื้อหาของตัวเอง และในทางทฤษฎี ควรมีซอร์สโค้ดบางประเภทที่อธิบายการดำเนินการที่จำเป็นของทั้งสองวิธี สำหรับเราตอนนี้ ไม่ว่าวิธีการเหล่านี้จะถูกนำไปใช้อย่างไร สิ่งสำคัญคือไวยากรณ์ของภาษา Java

    ทั้งสองวิธีมีวงเล็บใน () ซึ่งในนั้นสามารถเขียนพารามิเตอร์ได้ เช่น on (int time) หรือ on (int time, int time1) ด้วยความช่วยเหลือของพารามิเตอร์ มีการเชื่อมต่อระหว่างวิธีการกับโลกภายนอก วิธี on (int time) นั้นใช้พารามิเตอร์เวลา มีไว้เพื่ออะไร? ตัวอย่างเช่น คุณต้องการให้โทรศัพท์ของคุณเปิดใน ช่วงเวลาหนึ่ง... จากนั้นค่าจำนวนเต็มในพารามิเตอร์เวลาจะถูกส่งไปยังเนื้อหาของเมธอดและโทรศัพท์จะเปิดขึ้นตามข้อมูลที่ได้รับ หากวงเล็บว่างเปล่า เมธอดจะไม่รับพารามิเตอร์

    ความคิดเห็น (1)

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

    ความคิดเห็นใน Java สามารถมีได้สามประเภท ได้แก่:

    //, /*…*/ และ /**…*/

    ความคิดเห็นที่เขียนโดยใช้ตัวดำเนินการ // ต้องอยู่ในบรรทัดเดียว:

    // หนึ่งบรรทัด
    !!! ข้อผิดพลาด! คุณไม่สามารถตัดไปยังบรรทัดที่สองได้!
    // เส้นแรก
    // บรรทัดที่สอง
    // …
    //บรรทัดสุดท้าย

    ความคิดเห็นโดยใช้ตัวดำเนินการ / *… * / สามารถขยายได้หลายบรรทัด ที่จุดเริ่มต้นของความคิดเห็นของคุณให้ใส่ / * และเมื่อสิ้นสุดการแสดงความคิดเห็นโค้ด ให้ใส่เครื่องหมาย * / ความคิดเห็นแบบสุดท้าย / ** ... * / ใช้สำหรับบันทึกโค้ดและระบุตำแหน่งได้หลายบรรทัด

    ประเภทข้อมูล Java

    ชนิดข้อมูลมีอยู่ใน Java เพื่อตั้งค่าตามอำเภอใจ ในคลาส Telefon เราได้สร้างสองวิธี ทั้งสองวิธีไม่มีพารามิเตอร์ แต่เมื่อให้ตัวอย่างของวิธี on (int time) พร้อมพารามิเตอร์เวลา มีการกล่าวถึงการส่งค่าไปยังวิธีการ ค่านี้ระบุเวลาที่ควรจะเปิดโทรศัพท์ ตัวระบุ int กำหนดประเภทของค่าเวลา Java 2 ME มีข้อมูลหกประเภท

    ไบต์ - ค่าจำนวนเต็มขนาดเล็กจาก –128 ถึง 128;
    ค่าจำนวนเต็มสั้น - สั้นในช่วงตั้งแต่ –32768 ถึง 32767;
    int - มีค่าจำนวนเต็มตั้งแต่ –2147483648 ถึง 2147483647
    long เป็นค่าจำนวนเต็มที่มีขนาดใหญ่มาก ตั้งแต่ –922337203685475808 ถึง 9223372036854775807
    char คือค่าคงที่อักขระ Unicode พิสัย รูปแบบนี้จาก 0 ถึง 65536 ซึ่งเท่ากับ 256 อักขระ อักขระประเภทนี้ต้องเขียนด้วยเครื่องหมายคำพูดเดี่ยว เช่น 'G';
    บูลีน - ประเภทบูลีน มีเพียงสองค่า: เท็จ - เท็จ และ จริง - จริง ประเภทนี้มักจะใช้ในลูปซึ่งในภายหลัง แนวคิดนี้ง่ายมาก - หากคุณมีเงินอยู่ในกระเป๋า น่าจะเป็นเรื่องจริง และถ้าไม่ใช่ แสดงว่าเป็นเท็จ ดังนั้น ถ้ามีเงิน เราก็ไปที่ร้านเพื่อซื้อขนมปังหรือเบียร์ (ขีดเส้นใต้ว่าจำเป็น) ถ้าไม่มีเงิน เราก็อยู่บ้าน นั่นคือมันเป็นค่าตรรกะที่มีส่วนช่วยในการเลือก การดำเนินการต่อไปโปรแกรมของคุณ

    ในการประกาศค่าที่จำเป็น จะใช้รายการต่อไปนี้:

    ทันเวลา;
    BigTime ยาว;
    คำถ่าน;

    ต้องใช้ตัวดำเนินการอัฒภาคหลังรายการและวางไว้ที่ท้ายบรรทัด คุณสามารถรวมโฆษณาประเภทเดียวกันได้หลายรายการ โดยคั่นด้วยเครื่องหมายจุลภาค:

    Mt เวลา, เวลา 1, เวลา 2;

    ตอนนี้มาปรับปรุงคลาส Telefon ของเราโดยเพิ่มค่าบางอย่างลงไป เราไม่ต้องการวิธีการ on () และ off () อีกต่อไป เราจะเพิ่มวิธีการใหม่ๆ ที่สามารถแก้ปัญหาบางอย่างได้จริงๆ

    คลาสโทรศัพท์
    {
    // S - พื้นที่แสดงผล
    // w - ความกว้างของการแสดงผล
    // h - แสดงความสูง
    int w, h, S;
    // วิธีการคำนวณพื้นที่แสดงผล
    พื้นที่ vord ()
    {
    S = w * h;
    }
    }

    ดังนั้นเราจึงมีตัวแปรสามตัว S, w และ h ซึ่งรับผิดชอบตามลำดับสำหรับพื้นที่ ความกว้าง และความสูงของจอแสดงผลเป็นพิกเซล วิธีการ Area () คำนวณพื้นที่ของหน้าจอโทรศัพท์เป็นพิกเซล การดำเนินการนั้นไร้ประโยชน์ แต่บ่งบอกถึงและเข้าใจง่ายมาก เนื้อความของวิธี Area () ได้รับมาเองและมีรูปแบบ S = w * h ในวิธีนี้เราเพียงแค่คูณความกว้างด้วยความสูงและกำหนดหรือตามที่พวกเขาพูดเก็บผลลัพธ์ไว้ในตัวแปร S ตัวแปรนี้จะมีค่าของพื้นที่แสดงผล โทรศัพท์เครื่องนี้.

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

    ตัวดำเนินการเลขคณิต

    ตัวดำเนินการเลขคณิตทั้งหมดนั้นง่ายมากและคล้ายกับตัวดำเนินการสำหรับการคูณ "*", การหาร "/", การบวก "+" และการลบ "-" ที่ใช้ในวิชาคณิตศาสตร์ มีโอเปอเรเตอร์โมดูโล "%" และสถานการณ์ที่มีโอเปอเรเตอร์เท่ากับ "=" ทำให้สับสนเล็กน้อยในแวบแรก ตัวดำเนินการเท่ากับในภาษาโปรแกรมเรียกว่าตัวดำเนินการมอบหมาย:

    ที่นี่คุณกำหนดค่า 3 ให้กับตัวแปร x และตัวดำเนินการ "เท่ากับ" ในภาษาการเขียนโปรแกรมสอดคล้องกับการเขียนตัวดำเนินการสองตัวที่ต่อเนื่องกัน "เท่ากับ": "==" ลองดูตัวอย่างว่าตัวดำเนินการเลขคณิตต่างๆ ทำอะไรได้บ้าง

    Int x, y, z;
    x = 5;
    y = 3;
    z = 0;
    z = x + y;

    ในกรณีนี้ z จะมีค่าของผลรวมของ x และ y นั่นคือ 8

    ตัวแปร x มีค่าเท่ากับ 5 แต่หลังจากบันทึกดังกล่าว ค่าก่อนหน้าจะหายไปและเขียนผลคูณ z * x (8 * 5) ซึ่งเท่ากับ 40 ตอนนี้ หากเราดำเนินการโค้ดของเราต่อไป ตัวแปรจะ มีลักษณะดังนี้:

    // x = 40;
    // y = 3;
    // z = 8;

    ตัวดำเนินการบวกและลบมีจุดประสงค์เดียวกับในวิชาคณิตศาสตร์ ตัวเลขติดลบมีความเกี่ยวข้องในทำนองเดียวกัน

    ตัวดำเนินการลดค่า “––” และตัวดำเนินการเพิ่มค่า “++” มีความเฉพาะเจาะจงมาก แต่ง่ายมาก มีบ่อยครั้งในการเขียนโปรแกรมเมื่อคุณต้องการเพิ่มหรือลดค่าหนึ่งค่า นี้มักจะพบในลูป การดำเนินการที่เพิ่มขึ้นจะเพิ่มตัวแปรทีละตัว

    Int x = 5;
    x ++;
    // นี่ x อยู่แล้ว 6

    การดำเนินการลดจะลดตัวแปรลงหนึ่งตัว

    Int x = 5;
    x--;
    // x คือ 4

    การดำเนินการเพิ่มและลดลงสามารถโพสต์และนำหน้าได้:

    Int x = 5;
    int y = 0;
    y = x ++;

    ในบรรทัดสุดท้ายของโค้ด ขั้นแรกให้กำหนดค่า x ให้กับ y นี่คือค่า 5 จากนั้นตัวแปร x จะเพิ่มขึ้นหนึ่งค่าเท่านั้น ปรากฎว่า:

    การเพิ่มคำนำหน้าคือ:

    Int x = 3;
    int y = 0;
    y = ++ x;

    และในกรณีนี้ ขั้นแรก ตัวแปร x จะเพิ่มขึ้นหนึ่ง จากนั้นจึงกำหนดค่าที่เพิ่มขึ้นแล้วให้กับ y

    ตัวดำเนินการเชิงสัมพันธ์

    ตัวดำเนินการความสัมพันธ์ช่วยให้คุณตรวจสอบความเท่าเทียมกันของทั้งสองส่วนของนิพจน์ได้ มีโอเปอเรเตอร์ความเท่าเทียมกัน "==" ตัวดำเนินการน้อยกว่า "<» и больше «>" น้อยกว่าหรือเท่ากับ "<=» и больше или равно «>= ", เช่นเดียวกับตัวดำเนินการปฏิเสธ"! = ".
    9 == 10;

    นิพจน์นี้ไม่เป็นความจริง เก้าไม่เท่ากับสิบ ดังนั้นค่าของนิพจน์นี้จึงเป็นเท็จ

    ในทางกลับกัน ตัวดำเนินการปฏิเสธจะระบุความไม่เท่าเทียมกันของนิพจน์ และค่าจะเป็นจริง ตัวดำเนินการที่มากกว่า น้อยกว่า มากกว่าหรือเท่ากับและน้อยกว่าหรือเท่ากับจะคล้ายกับตัวดำเนินการที่เกี่ยวข้องจากคณิตศาสตร์

    ตัวดำเนินการลอจิก

    มีตัวดำเนินการเชิงตรรกะสองตัว ตัวดำเนินการ AND แทนด้วย && และตัวดำเนินการ OR แทนด้วยเครื่องหมายทับ "||" สองตัว ตัวอย่างเช่น มีนิพจน์:

    เอ * บี && บี * C;

    ในกรณีที่นิพจน์ทั้งสองส่วนเป็นจริงเท่านั้น ค่าของนิพจน์จะถือเป็นจริง หากส่วนใดส่วนหนึ่งไม่ถูกต้อง ค่าของนิพจน์ทั้งหมดจะเป็นเท็จ
    ตรงกันข้ามกับตัวดำเนินการ "&&" มีตัวดำเนินการ "||" ซึ่งไม่ได้เรียกว่า "OR" อย่างเปล่าประโยชน์

    เอ * บี || บี * ซี;

    หากส่วนใดส่วนหนึ่งของนิพจน์เป็นจริง นิพจน์ทั้งหมดจะถือว่าเป็นจริง ตัวดำเนินการทั้งสองตัวสามารถรวมกันเป็นนิพจน์เดียวได้ ตัวอย่างเช่น

    เอ * บี || B * C && C * D || บี * เอ;

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

    , ., (),
    !, ~, ++, - -, + (unary), - (unary), ใหม่,
    *, /, %,
    +, –,
    <<, >>, >>>,
    <, <=, >, >=,
    = =, !=,
    &, ^, |,
    &&,
    ||,
    ?:,
    =, +=, –=, *=, /=, %=, |=, ^=, <<=, >>=, >>>=.

    การเชื่อมโยงตัวดำเนินการในรายการจะติดตามจากซ้ายไปขวาและจากบนลงล่าง นั่นคือทุกอย่างที่อยู่ทางซ้ายและด้านบนนั้นเก่ากว่าและสำคัญกว่า