สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
พัฒนาเว็บไซต์ · WDC-85

Java OOP

หลักสูตร Java OOP เป็นการอบรมออกแบบและเขียนโปรแกรมเชิงวัตถุด้วย Java 25 LTS ตั้งแต่ Class, Encapsulation, Inheritance และ Polymorphism จนถึง Interface, Record, Sealed Class, หลัก SOLID และ Design Pattern เหมาะกับผู้ที่เขียน Java ได้แล้ว นักพัฒนาที่อยากให้โค้ดดูแลง่าย และนักศึกษาสายคอมพิวเตอร์

อัปเดตล่าสุด
ราคาเริ่มต้น 8,550 บาท / ท่าน 9,500 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไปเปิดตามคำขอ
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

ผู้ที่เขียน Java ได้แล้วจำนวนมากยังเขียนโปรแกรมแบบรวมทุกอย่างไว้ใน Class ใหญ่ไม่กี่ตัว พอระบบโตขึ้นก็แก้ยาก ทดสอบยาก และนำโค้ดกลับมาใช้ซ้ำไม่ได้ การคิดแบบ Object Oriented ที่ถูกต้องช่วยแบ่งความรับผิดชอบของโค้ดให้ชัด และ Java รุ่นใหม่ยังเพิ่มเครื่องมือที่ทำให้ออกแบบได้ดีขึ้น เช่น Record, Sealed Class และ Pattern Matching ซึ่งตำรา OOP รุ่นเก่ายังไม่ได้พูดถึง

หลักสูตรนี้พาเรียนหลักการ OOP บน Java 25 LTS อย่างลึกและนำไปใช้ได้จริง เริ่มจากการคิดแบบ Object การออกแบบ Class, Abstraction, Encapsulation, Inheritance และ Polymorphism ต่อด้วย Abstract Class กับ Interface, Record, Sealed Class, Pattern Matching, Composition และ Generics จากนั้นยกระดับสู่การออกแบบด้วยหลัก SOLID, Class Diagram และ Design Pattern ที่ใช้บ่อย เขียน Unit Test ด้วย JUnit 6 เพื่อ Refactor อย่างมั่นใจ แล้วปิดท้ายด้วย Capstone ออกแบบและสร้างระบบด้วย OOP ตั้งแต่ต้นจนจบ (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

สิ่งที่คุณจะได้รับ

  • เข้าใจเหตุผลของการเขียนโปรแกรมแบบ OOP และความต่างจากแบบ Top-Down
  • ออกแบบ Class และ Object ที่มีหน้าที่ชัดเจน พร้อม Abstraction และ Encapsulation
  • ใช้ Inheritance, Polymorphism, Overloading, Overriding และ final ได้ถูกที่
  • เลือกใช้ Abstract Class, Interface, Record และ Sealed Class ให้เหมาะกับงาน
  • ใช้ Composition และ Generics เพื่อให้โค้ดยืดหยุ่นและนำกลับมาใช้ซ้ำได้
  • ออกแบบตามหลัก SOLID และอ่านเขียน Class Diagram ได้
  • ประยุกต์ใช้ Design Pattern ที่พบบ่อยในงานจริงได้
  • เขียน Unit Test ด้วย JUnit 6 และ Refactor โค้ด OOP ได้อย่างปลอดภัย

หลักสูตรนี้เหมาะสำหรับ

  • ผู้ที่เขียน Java ได้แล้วและต้องการเขียนโปรแกรมแบบเชิงวัตถุอย่างถูกหลัก
  • Developer ที่ต้องการออกแบบโค้ดให้ดูแลและขยายต่อได้ง่าย
  • ผู้ที่จะต่อยอดไปใช้ Framework อย่าง Spring Boot หรือ Jakarta EE
  • นักศึกษาและครูอาจารย์สายคอมพิวเตอร์ที่ต้องการเข้าใจ OOP และ Design Pattern
  • IT Manager และ Tech Lead ที่ต้องรีวิวโค้ดและวางแนวทางการออกแบบของทีม

พื้นฐานของผู้เข้าอบรม

  • เขียนภาษา Java ได้ เช่น ตัวแปร เงื่อนไข ลูป Method และ ArrayList
  • เคยสร้าง Class และ Object มาบ้าง แม้ยังไม่คล่อง
  • ใช้ IDE อย่าง IntelliJ IDEA หรือ VS Code ได้เบื้องต้น
  • โน้ตบุ๊กที่ติดตั้ง JDK 25 และ IDE ได้ พร้อมสิทธิ์ติดตั้งโปรแกรม

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ที่มาแทนหลักสูตร JAVA OOP รุ่นเดิม เนื้อหาเขียนใหม่ทั้งหมดสำหรับ Java 25 LTS อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab บนโจทย์ระบบห้องสมุดที่ขยายต่อตลอดหลักสูตร ระดับ Intermediate คงหัวข้อหลักเดิมเรื่อง Class, Abstraction, Encapsulation, Inheritance, Polymorphism, final, Abstract Class และ Interface แล้วเพิ่ม Record, Sealed Class, Pattern Matching, Composition, หลัก SOLID, Design Pattern และ Unit Test ด้วย JUnit 6 หลักสูตรนี้ต่อยอดจาก Basic Java Programming โดยเน้นการออกแบบเชิงวัตถุให้ลึกขึ้น ผู้เรียนได้ Lab Guide ซอร์สโค้ดและโปรเจกต์ Maven ครบทุก Lab กลับไปใช้งานต่อ

Day 1 หลักการ OOP บน Java 25

Section 1: Lab: แนวคิด OOP และเตรียมเครื่องมือ

  • ทำไมต้องเขียนแบบ OOP ข้อดีข้อเสียเทียบกับแบบ Top-Down
  • คิดแบบ Object: แยกสิ่งของ หน้าที่ และความสัมพันธ์จากโจทย์
  • ติดตั้ง JDK 25, IntelliJ IDEA หรือ VS Code และสร้างโปรเจกต์ Maven
  • Lab: วิเคราะห์โจทย์ระบบห้องสมุดเป็นรายการ Class เบื้องต้น

Section 2: Class, Object และ Constructor

  • Field, Method และ Object Reference ในหน่วยความจำ
  • Constructor, Overloading ของ Constructor และ this
  • Flexible Constructor Bodies ใน Java 25 สำหรับตรวจค่าก่อนเรียก super
  • Static Member เทียบกับ Instance Member
  • Lab: สร้าง Class หนังสือและสมาชิกพร้อมตรวจความถูกต้องของข้อมูล

Section 3: Abstraction และ Encapsulation

  • Abstraction: เปิดเผยเฉพาะสิ่งที่ผู้ใช้ Class ต้องรู้
  • ซ่อนสถานะด้วย private และ Access Modifier อื่น ๆ
  • Getter, Setter และเมื่อใดไม่ควรมี Setter
  • Immutable Object และ Package สำหรับจัดกลุ่ม Class
  • Lab: ปรับ Class บัญชีเงินฝากให้ปกป้องยอดเงินจากการแก้ไขผิดวิธี

Section 4: Lab: Inheritance

  • หลักการสืบทอดและความสัมพันธ์แบบ is-a
  • super, protected และลำดับการสร้าง Object
  • Override เมธอด toString, equals และ hashCode ให้ถูกต้อง
  • ข้อควรระวังของลำดับชั้นการสืบทอดที่ลึกเกินไป
  • Lab: ลำดับชั้นของสื่อในห้องสมุด เช่น หนังสือ นิตยสาร และ E-book

Section 5: Polymorphism และ final

  • Overloading กับ Overriding ต่างกันอย่างไร
  • Dynamic Dispatch และการอ้างอิงผ่านชนิดของคลาสแม่
  • final กับตัวแปร Method และ Class
  • Lab: คำนวณค่าปรับคืนช้าที่ต่างกันตามชนิดสื่อด้วย Polymorphism
Day 2 เครื่องมือออกแบบของ Java สมัยใหม่

Section 6: Abstract Class และ Interface

  • Abstract Class ต่างจาก Class ทั่วไปอย่างไร
  • Interface พร้อม default, static และ private Method
  • เลือกระหว่าง Abstract Class กับ Interface
  • Functional Interface และ Lambda ในมุมของ OOP
  • Lab: ออกแบบ Interface ช่องทางแจ้งเตือนหลายแบบ

Section 7: Lab: Record, Sealed Class และ Pattern Matching

  • Record สำหรับข้อมูลที่ไม่เปลี่ยนค่า และ Compact Constructor
  • Sealed Class และ Sealed Interface จำกัดชนิดลูกที่อนุญาต
  • Pattern Matching กับ instanceof และ switch
  • Record Pattern และ Unnamed Pattern
  • Lab: โมเดลการชำระเงินหลายรูปแบบด้วย Sealed Interface และ switch

Section 8: Composition แทน Inheritance

  • ความสัมพันธ์แบบ has-a, Association และ Aggregation
  • Delegation และเหตุผลที่ควรเลือก Composition ก่อน
  • Enum ที่มีพฤติกรรมของตัวเอง
  • Lab: Refactor ลำดับชั้นที่ซับซ้อนให้เป็น Composition

Section 9: Generics และ Collections ในการออกแบบ

  • Generic Class และ Generic Method
  • Bounded Type และ Wildcard
  • Comparable กับ Comparator สำหรับเรียงลำดับ Object
  • เลือก List, Set หรือ Map ให้เหมาะกับโมเดลข้อมูล
  • Lab: Repository แบบ Generic สำหรับข้อมูลในระบบห้องสมุด

Section 10: Lab: ออกแบบ Exception ให้เป็นระบบ

  • Checked กับ Unchecked Exception และเมื่อใดใช้แบบไหน
  • สร้าง Custom Exception ที่สื่อความหมายทางธุรกิจ
  • try-with-resources และการไม่กลืน Error
  • ใช้ Optional แทนการคืนค่า null
  • Lab: จัดการกรณียืมหนังสือเกินสิทธิ์และหนังสือไม่ว่าง
Day 3 หลักการออกแบบ Design Pattern และ Test

Section 11: หลัก SOLID และ Class Diagram

  • Single Responsibility และ Open/Closed
  • Liskov Substitution, Interface Segregation และ Dependency Inversion
  • Coupling และ Cohesion
  • อ่านและเขียน Class Diagram ด้วย PlantUML หรือ Mermaid
  • Lab: วิเคราะห์โค้ดที่ผิดหลัก SOLID แล้วเสนอการแก้

Section 12: Design Pattern กลุ่ม Creational

  • Design Pattern คืออะไร และใช้อย่างไรไม่ให้เกินจำเป็น
  • Factory Method และ Static Factory
  • Builder สำหรับ Object ที่มีค่าหลายตัว
  • Singleton และข้อควรระวัง
  • Lab: สร้าง Object สมาชิกหลายประเภทด้วย Factory และ Builder

Section 13: Lab: Pattern กลุ่ม Structural และ Behavioral

  • Adapter และ Decorator
  • Strategy และ Template Method
  • Observer สำหรับแจ้งเหตุการณ์
  • เขียน Pattern ให้กระชับด้วย Lambda, Record และ Sealed Class
  • Lab: ใช้ Strategy คำนวณค่าปรับ และ Observer แจ้งเตือนหนังสือว่าง

Section 14: Lab: Unit Test และ Refactoring

  • เขียน Unit Test ด้วย JUnit 6 และ Assertion ที่อ่านง่าย
  • Mock Dependency ด้วย Mockito
  • Code Smell ที่พบบ่อยในโค้ด OOP
  • Refactor ทีละขั้นโดยมี Test คุ้มครอง
  • ใช้ AI Assistant ช่วยรีวิวการออกแบบพร้อมตรวจทานผล

Section 15: Workshop: Capstone ออกแบบระบบด้วย OOP

  • วิเคราะห์โจทย์ระบบจองหรือระบบยืมคืนที่ผู้เรียนเลือก
  • วาด Class Diagram และเลือก Pattern ที่เหมาะสม
  • ลงมือสร้างพร้อม Unit Test ครอบคลุมส่วนสำคัญ
  • นำเสนอการออกแบบ รีวิวร่วมกัน และสรุปเส้นทางต่อยอด

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

การเขียนโปรแกรมแบบ OOP ต่างจากแบบ Top-Down อย่างไร

แบบ Top-Down แบ่งงานเป็นขั้นตอนและฟังก์ชันตามลำดับการทำงาน ข้อมูลมักถูกส่งผ่านหลายฟังก์ชันและแก้ไขได้จากหลายที่ เหมาะกับโปรแกรมขนาดเล็ก ส่วน OOP แบ่งระบบเป็น Object ที่รวมข้อมูลกับพฤติกรรมไว้ด้วยกัน แต่ละ Object ดูแลสถานะของตัวเองและมีหน้าที่ชัดเจน เมื่อระบบโตขึ้นจึงแก้ไข ทดสอบ และนำโค้ดกลับมาใช้ซ้ำได้ง่ายกว่า ใน Java 25 ยังมี Record และ Sealed Class ที่ช่วยให้ออกแบบโมเดลข้อมูลได้กระชับขึ้น

Abstract Class กับ Interface ใน Java ต่างกันอย่างไร

Abstract Class เก็บสถานะ (Field) และโค้ดที่ใช้ร่วมกันได้ มี Constructor และคลาสลูกสืบทอดได้เพียงคลาสเดียว เหมาะกับกลุ่ม Class ที่เป็นชนิดเดียวกันจริง ๆ ส่วน Interface กำหนดความสามารถที่ Class ต้องมี ไม่มีสถานะของ Object แต่มี default, static และ private Method ได้ และ Class หนึ่ง Implement ได้หลาย Interface เหมาะกับการกำหนดสัญญาระหว่างส่วนต่าง ๆ ของระบบ ถ้าต้องการจำกัดว่าใครสืบทอดได้บ้าง ใช้ Sealed ร่วมกับทั้งสองแบบได้

Overloading กับ Overriding ต่างกันอย่างไร

Overloading คือการมีเมธอดชื่อเดียวกันหลายตัวใน Class เดียวกันที่รับ Parameter ต่างกัน คอมไพเลอร์เลือกตัวที่จะเรียกตั้งแต่ตอนคอมไพล์ ส่วน Overriding คือคลาสลูกเขียนเมธอดที่มีชื่อและ Parameter เหมือนคลาสแม่ใหม่ เพื่อเปลี่ยนพฤติกรรม โดย Java เลือกเวอร์ชันที่จะทำงานตอนรันตามชนิดจริงของ Object ซึ่งเป็นหัวใจของ Polymorphism ควรติด @Override ทุกครั้งเพื่อให้คอมไพเลอร์ช่วยตรวจ

หลักสูตร Java OOP เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับผู้ที่เขียน Java ได้แล้วและต้องการเขียนแบบเชิงวัตถุอย่างถูกหลัก Developer ที่อยากให้โค้ดดูแลง่าย ผู้ที่จะต่อยอดไป Spring Boot หรือ Jakarta EE นักศึกษา ครูอาจารย์ และ Tech Lead ควรเขียน Java พื้นฐานได้ เช่น ตัวแปร เงื่อนไข ลูป Method และ ArrayList หากยังไม่เคยเขียน Java ควรเรียน Basic Java Programming ก่อน

เรียนจบหลักสูตร Java OOP แล้วทำอะไรได้บ้าง

วิเคราะห์โจทย์แล้วแยกเป็น Class ที่มีหน้าที่ชัดเจน ใช้ Encapsulation, Inheritance และ Polymorphism ได้ถูกที่ เลือกใช้ Abstract Class, Interface, Record และ Sealed Class ได้เหมาะสม ออกแบบตามหลัก SOLID วาด Class Diagram ใช้ Design Pattern ที่พบบ่อย และเขียน Unit Test ด้วย JUnit 6 เพื่อ Refactor อย่างปลอดภัย ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

จัดอบรมหลักสูตร Java OOP ให้ทีมในองค์กรได้ไหม

ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับโจทย์ให้ตรงกับงานของทีม เช่น ใช้ตัวอย่างจากโดเมนธุรกิจขององค์กร หรือเน้นการรีวิวและ Refactor โค้ด Java ที่ทีมดูแลอยู่ ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449

บทความที่เกี่ยวข้อง