ความแตกต่างระหว่างคลาสและวัตถุใน OOP

ความแตกต่างที่สำคัญระหว่างคลาสและวัตถุ

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

คลาสคืออะไร?

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

วัตถุคืออะไร?

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

ตัวอย่างเช่น เมื่อคุณส่งข้อความไปยังวัตถุ คุณกำลังขอให้วัตถุเรียกใช้หรือดำเนินการหนึ่งในวิธีการของมัน

จากมุมมองการเขียนโปรแกรม อ็อบเจ็กต์อาจเป็นโครงสร้างข้อมูล ตัวแปร หรือฟังก์ชันที่ได้รับการจัดสรรตำแหน่งหน่วยความจำ อ็อบเจ็กต์ได้รับการออกแบบเป็นลำดับชั้นของคลาส

คลาสกับวัตถุ - ความแตกต่างระหว่างพวกเขา

นี่คือข้อแตกต่างที่สำคัญระหว่างคลาสและอ็อบเจ็กต์:

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

เข้าใจแนวคิดของ Java คลาสและออบเจ็กต์พร้อมตัวอย่าง

มาดูตัวอย่างการพัฒนาระบบการจัดการสัตว์เลี้ยงสำหรับสุนัขโดยเฉพาะ คุณจะต้องมีข้อมูลต่างๆ เกี่ยวกับสุนัข เช่น สุนัขพันธุ์ต่างๆ อายุ ขนาด ฯลฯ

คุณต้องจำลองสิ่งมีชีวิตในชีวิตจริง เช่น สุนัข ให้กลายเป็นซอฟต์แวร์

แนวความคิดของ Java คลาสและวัตถุ

ยิ่งไปกว่านั้น คำถามล้านดอลลาร์ก็คือ คุณจะออกแบบซอฟต์แวร์ดังกล่าวอย่างไร นี่คือวิธีแก้ปัญหา -

ก่อนอื่นเรามาออกกำลังกายกันก่อน

คุณสามารถเห็นภาพสุนัขสามสายพันธุ์ที่แตกต่างกันด้านล่าง

แนวความคิดของ Java คลาสและวัตถุ

หยุดที่นี่เดี๋ยวนี้! แสดงรายการความแตกต่างระหว่างพวกเขา

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

แนวความคิดของ Java คลาสและวัตถุ

ต่อไป แสดงรายการพฤติกรรมทั่วไปของสุนัขเหล่านี้ เช่น นอน นั่ง กิน ฯลฯ ดังนั้นสิ่งเหล่านี้จะเป็นการกระทำของออบเจ็กต์ซอฟต์แวร์ของเรา

แนวความคิดของ Java คลาสและวัตถุ

จนถึงขณะนี้เราได้กำหนดสิ่งต่างๆ ดังต่อไปนี้

  • ชั้น: สุนัข
  • สมาชิกข้อมูล or วัตถุ: ขนาด อายุ สี พันธุ์ ฯลฯ
  • วิธีการ: กิน นอน นั่งวิ่ง

แนวความคิดของ Java คลาสและวัตถุ

ตอนนี้สำหรับค่าต่างๆ ของสมาชิกข้อมูล (ขนาดพันธุ์ อายุ และสี) Java คลาสคุณจะได้รับสิ่งของสุนัขที่แตกต่างกัน

แนวความคิดของ Java คลาสและวัตถุ

คุณสามารถออกแบบโปรแกรมใดก็ได้โดยใช้แนวทาง OOP นี้

คลาสและออบเจ็กต์ใน Java

ในโปรแกรมด้านล่าง เราได้ประกาศคลาสที่เรียกว่า Dog เราได้กำหนดวัตถุของคลาสที่เรียกว่า “มอลตา” โดยใช้คำหลักใหม่ ในคำสั่งสุดท้าย System.out.println(maltese.getInfo()); เรากำลังแสดงข้อมูลสุนัข เช่น พันธุ์ ขนาด อายุ สี ฯลฯ

// Class Declaration
class Dog {
    // Instance Variables
    String breed;
    String size;
    int age;
    String color;
  
    // method 1
    public String getInfo() {
        return ("Breed is: "+breed+" Size is:"+size+" Age is:"+age+" color is: "+color);
    }
}
public class Execute{
    public static void main(String[] args) {
        Dog maltese = new Dog();
        maltese.breed="Maltese";
        maltese.size="Small";
        maltese.age=2;
        maltese.color="white";
        System.out.println(maltese.getInfo());
    }
}

Output:

สายพันธุ์คือ: มอลทีส ขนาด: เล็ก อายุ:2 สีคือ: สีขาว

ประเภทของชั้นเรียน

ต่อไปนี้เป็นประเภทของคลาสที่สำคัญ:

คลาสที่ได้รับและการสืบทอด

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

ซูเปอร์คลาส:

ซูเปอร์คลาสคือคลาสที่คุณสามารถรับคลาสย่อยจำนวนมากได้

คลาสย่อย:

คลาสย่อยคือคลาสที่ได้มาจากซูเปอร์คลาส

ชั้นเรียนผสม

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

การใช้คลาส

ต่อไปนี้เป็นการใช้งานที่สำคัญของคลาส:

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

การใช้วัตถุ

ต่อไปนี้เป็นการใช้งานที่สำคัญของวัตถุ

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