0Pricing
Java Academy · บทเรียน

เมธอด static กับเมธอดของอินสแตนซ์

ทำความเข้าใจว่าเมื่อใดควรใช้สมาชิก static หรือสมาชิกของอินสแตนซ์ และการเรียกใช้งานแตกต่างกันอย่างไร

เมธอด static กับเมธอดของอินสแตนซ์ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

static หมายถึงอะไร

แนวคิด: สมาชิกสแตติกเป็นของคลาส ส่วนสมาชิกอินสแตนซ์เป็นของวัตถุแต่ละตัว

สมาชิกอินสแตนซ์

เมธอดอินสแตนซ์ใช้สถานะเฉพาะของแต่ละวัตถุ เรียกใช้เมธอดเหล่านี้กับตัวแปร เช่น user.login()

สมาชิกสแตติก

เมธอดและฟิลด์สแตติกใช้ร่วมกัน เรียกใช้ผ่านชื่อคลาส เช่น Math.max(a, b)

การเลือกสแตติกกับอินสแตนซ์

เลือกอินสแตนซ์เมื่อพฤติกรรมขึ้นอยู่กับสถานะของวัตถุ เลือกสแตติกสำหรับยูทิลิตีบริสุทธิ์หรือตัวนับระดับคลาส

ข้อควรระวัง

หลีกเลี่ยงการใช้ฟิลด์อินสแตนซ์ในเมธอดสแตติก และหลีกเลี่ยงสแตติกเมื่อจำเป็นต้องใช้สถานะเฉพาะของวัตถุ

ตัวอย่างสาธิต: สแตติกกับอินสแตนซ์

เรียกใช้เพื่อดูการเรียกเมธอดอินสแตนซ์กับวัตถุและการเรียกเมธอดสแตติกผ่านคลาส ตัวนับ counter ใช้ร่วมกัน

public class Main {
  public static void main(String[] args) {
    // Two Person objects hold different names
    Person a = new Person("Ada");
    Person b = new Person("Bob");

    // Instance method: needs an object
    a.greet();
    b.greet();

    // Static method/field: belong to class Utils
    int s = Utils.add(7, 5);               // pure function
    System.out.println("sum = " + s);

    Utils.bumpCounter();
    Utils.bumpCounter();
    System.out.println("counter = " + Utils.counter); // shared across all
  }

  static class Person {
    private String name;
    Person(String name) { this.name = name; }
    void greet() {
      System.out.println("Hello, " + name + "!");
    }
  }

  static class Utils {
    static int counter = 0;                // static field (shared)
    static int add(int x, int y) {         // static method (pure)
      return x + y;
    }
    static void bumpCounter() {            // static method (mutates shared)
      counter = counter + 1;
    }
  }
}

ตรวจสอบความเข้าใจ

ตรวจสอบอย่างรวดเร็ว: การเรียกใดทำงานได้โดยไม่ต้องสร้างวัตถุก่อน

สรุปทบทวน

สรุปทบทวน: สแตติก = ระดับคลาสและใช้ร่วมกัน อินสแตนซ์ = พฤติกรรมและสถานะเฉพาะวัตถุ

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

บทเรียน “เมธอด static กับเมธอดของอินสแตนซ์” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เมธอด static กับเมธอดของอินสแตนซ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เมธอด static กับเมธอดของอินสแตนซ์”

ทำความเข้าใจว่าเมื่อใดควรใช้สมาชิก static หรือสมาชิกของอินสแตนซ์ และการเรียกใช้งานแตกต่างกันอย่างไร คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 3 บทเรียน

บทเรียน “เมธอด static กับเมธอดของอินสแตนซ์” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม

ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การส่งค่าใน Java
  2. เมธอด static กับเมธอดของอินสแตนซ์
  3. การแยกปัญหาด้วยเมธอดและโค้ดสะอาด
← กลับไปที่ Java Academy