ความแตกต่างระหว่างสิ่งนี้กับซุปเปอร์ในภาษาจาวา

สารบัญ:

ความแตกต่างระหว่างสิ่งนี้กับซุปเปอร์ในภาษาจาวา
ความแตกต่างระหว่างสิ่งนี้กับซุปเปอร์ในภาษาจาวา

วีดีโอ: ความแตกต่างระหว่างสิ่งนี้กับซุปเปอร์ในภาษาจาวา

วีดีโอ: ความแตกต่างระหว่างสิ่งนี้กับซุปเปอร์ในภาษาจาวา
วีดีโอ: ปูพื้นฐานการเขียนโปรแกรมเชิงวัตถุด้วยภาษา Java [FULL COURSE] 2024, กรกฎาคม
Anonim

ความแตกต่างที่สำคัญ – สิ่งนี้เทียบกับซุปเปอร์ใน Java

คีย์เวิร์ด 'this' และ 'super' ใช้ในการเขียนโปรแกรม Java ไม่สามารถใช้คีย์เวิร์ดเหล่านี้เป็นตัวแปรหรือชื่อตัวระบุอื่นๆ Java รองรับการเขียนโปรแกรมเชิงวัตถุ (OOP) โปรแกรมหรือซอฟต์แวร์สามารถสร้างแบบจำลองโดยใช้วัตถุ ออบเจ็กต์นั้นไม่เพียงพอโดยใช้คลาส เสาหลักของ OOP คือมรดก มันให้รหัสนำกลับมาใช้ใหม่ได้ คลาสที่มีอยู่แล้วคือซูเปอร์คลาส และคลาสที่ได้รับคือคลาสย่อย คีย์เวิร์ด super สามารถใช้เพื่ออ้างถึงอ็อบเจ็กต์ของ superclass มีหลายอ็อบเจ็กต์ในระบบ คำหลัก 'นี้' ใช้เพื่ออ้างถึงวัตถุปัจจุบันความแตกต่างที่สำคัญระหว่าง this และ super คือ 'this' คือตัวแปรอ้างอิงที่ใช้เพื่ออ้างอิงวัตถุปัจจุบันในขณะที่ 'super' เป็นตัวแปรอ้างอิงที่ใช้เพื่ออ้างอิงวัตถุ superclass ทันที

นี่คืออะไรในภาษาจาวา

คำหลัก 'นี้' ใช้เพื่ออ้างอิงวัตถุปัจจุบัน อ้างถึงโปรแกรม Java ที่กำหนด

ความแตกต่างระหว่างสิ่งนี้กับสุดยอดใน Java
ความแตกต่างระหว่างสิ่งนี้กับสุดยอดใน Java

รูปที่ 01: โปรแกรม Java ที่ใช้คำสำคัญนี้

ใน Java มีตัวแปรสามประเภท พวกมันคือตัวแปรอินสแตนซ์ ตัวแปรโลคัล และตัวแปรคลาส ตามโปรแกรมข้างต้น class Employee มีตัวแปรอินสแตนซ์สองตัว พวกเขาเป็นรหัสและชื่อ ตัวแปรโลคัลคือตัวแปรที่เป็นของเมธอด ตัวแปรคลาสใช้ร่วมกันโดยอ็อบเจ็กต์ทั้งหมด รหัสและชื่อจะถูกส่งต่อไปยังตัวสร้างพนักงาน หากโปรแกรมเมอร์เขียน id=id; จะไม่เริ่มต้นตัวแปรอินสแตนซ์เนื่องจากตัวสร้างมีรหัสและชื่ออยู่แล้วไม่มีค่าสำหรับตัวแปรอินสแตนซ์ ดังนั้นการพิมพ์จะแสดงเป็นโมฆะ เมื่อใช้สิ่งนี้จะหมายถึงวัตถุปัจจุบัน ดังนั้น การให้ ID และชื่อแก่ Constructor สามารถตั้งค่าตัวแปรอินสแตนซ์ได้

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

คลาสสาธารณะ สาธิตนี้{

public static void main(สตริง args){

Myclass myClass=myclass ใหม่();

myClass. B();

}

}

คลาส Myclass{

โมฆะสาธารณะ A(){

System.out.println(“A”);

}

โมฆะสาธารณะ B(){

System.out.prinltn(“B”);

นี้. A();

}

}

คลาส Myclass มีสองวิธี เป็นวิธี A และ B เมื่อสร้างวัตถุของ Myclass และเรียกใช้วิธี B จะพิมพ์ B A เป็นผลลัพธ์ ในวิธี B หลังจากพิมพ์ B จะมีคำสั่งดังนี้ A() เมื่อใช้วิธีนี้ คลาสปัจจุบันก็ถูกเรียกใช้

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

คลาสสาธารณะ สาธิตนี้{

public static void main(สตริง args){

A obj=ใหม่ A(5);

}

}

คลาส A{

สาธารณะ A(){

System.out.println(“ตัวสร้าง A”);

}

สาธารณะ A(int x){

นี่();

System.out.println(“ตัวสร้างพารามิเตอร์ A”);

}

}

ตามโปรแกรมข้างต้น คลาส A มีตัวสร้างเริ่มต้นและตัวสร้างพารามิเตอร์ เมื่อสร้างวัตถุของ A ตัวสร้างพารามิเตอร์จะถูกเรียก ในตัวสร้างพารามิเตอร์ มีคำสั่งเช่นนี้ (); มันจะเรียกตัวสร้างคลาสปัจจุบันที่เป็น A().

Java คืออะไร

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

'super' เป็นตัวแปรอ้างอิงที่ใช้อ้างอิงอ็อบเจกต์คลาสพาเรนต์ในทันที คีย์เวิร์ด super สามารถอ้างถึงตัวแปรอินสแตนซ์คลาสพาเรนต์ทันทีหรือเรียกใช้เมธอดคลาสพาเรนต์ทันที super() ใช้เพื่อเรียกใช้ตัวสร้างคลาสหลักทันที

สมมติว่ามีสองคลาสเป็น A และ B คลาส A เป็นซูเปอร์คลาส และคลาส B เป็นคลาสย่อย คลาส A, B มีวิธีแสดงผลทั้งคู่

สาธารณะ A{

แสดงโมฆะสาธารณะ(){

System.out.println(“A”);

}

}

ขยายคลาส B สาธารณะ A{

แสดงโมฆะสาธารณะ(){

System.out.println(“B”);

}

}

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

ความแตกต่างระหว่างสิ่งนี้กับ super ใน Java_Figure 02
ความแตกต่างระหว่างสิ่งนี้กับ super ใน Java_Figure 02

รูปที่ 02: โปรแกรม Java ที่ใช้ super keyword

ตามโปรแกรมข้างบนนี้ คลาส A มีตัวแปรชื่อ number ที่มีค่า 10 คลาส B ขยาย A และมีตัวแปรชื่อ number ที่มีค่า 20 โดยทั่วไปเมื่อสร้างอ็อบเจ็กต์ประเภท B และเรียกวิธีการแสดง ควรให้ตัวเลขในคลาสย่อยเนื่องจากค่า superclass ถูกแทนที่โดยคลาสใหม่โดยใช้ super.num ค่าหมายเลข superclass จะถูกพิมพ์

super() สามารถใช้เรียกตัวสร้าง superclass ได้ อ้างอิงโปรแกรมด้านล่าง

ชั้นเรียนสาธารณะ หลัก {

public static void main(สตริง args){

B obj=ใหม่ B();

}

}

คลาส A{

A(){

System.out.println(“A”);

}

}

คลาส B ขยาย A{

B(){

super();

System.out.println(“B”);

}

}

ตามโปรแกรมข้างต้น คลาส A มีตัวสร้าง A () คลาส B มีคอนสตรัคเตอร์ B () คลาส B ขยายคลาส A เมื่อสร้างวัตถุประเภท B มันจะพิมพ์ A, B เป็นเอาต์พุต ตัวสร้าง B () มี super () ดังนั้น อันดับแรก คอนสตรัคเตอร์ A จะถูกเรียกใช้ จากนั้นไปที่ Bแม้ว่าจะไม่ได้เขียน super () แต่โดยค่าเริ่มต้น ตัวสร้างหลักจะถูกเรียก

สุดยอดใช้วิธีดังนี้

ความแตกต่างที่สำคัญระหว่างสิ่งนี้กับสุดยอดใน Java
ความแตกต่างที่สำคัญระหว่างสิ่งนี้กับสุดยอดใน Java

รูปที่ 03: โปรแกรม Java ที่เรียกใช้วิธี superclass

ตามโปรแกรมด้านบน คลาส A มีวิธีการแสดงผล คลาส B ยังมีวิธีการแสดงผล คลาส B ขยาย A. เมื่อสร้างวัตถุประเภท B และเรียกวิธีการแสดงจะให้ผลลัพธ์เป็น A และ B ในวิธีการแสดงคลาส B วิธีการแสดงคลาส A ถูกเรียกโดยใช้ super.display() วิธีนั้นจะพิมพ์ "A" ก่อน แล้วพิมพ์ “B”.

ความคล้ายคลึงกันระหว่างสิ่งนี้กับซุปเปอร์คืออะไร

ทั้งสองเป็นคีย์เวิร์ดในการเขียนโปรแกรม Java

ความแตกต่างระหว่างสิ่งนี้กับซุปเปอร์คืออะไร

นี่กับซุปเปอร์

'นี้' เป็นตัวแปรอ้างอิงที่ใช้เพื่ออ้างอิงวัตถุปัจจุบัน 'super' เป็นตัวแปรอ้างอิงที่ใช้เพื่ออ้างอิงวัตถุ superclass ในทันที
ตัวแปรอินสแตนซ์
สามารถอ้างอิงตัวแปรอินสแตนซ์คลาสปัจจุบันได้โดยใช้สิ่งนี้ สามารถอ้างอิงตัวแปรอินสแตนซ์ Superclass ได้โดยใช้ super
วิธีการเรียน
วิธีการเรียนปัจจุบันสามารถเรียกใช้ได้โดยใช้สิ่งนี้ สามารถเรียกใช้วิธี Superclass ได้โดยใช้ super
ตัวสร้าง
ตัวสร้างคลาสปัจจุบันสามารถเรียกใช้ได้โดยใช้สิ่งนี้(). ตัวสร้าง Superclass สามารถเรียกใช้ได้โดยใช้ super().

Summary – this vs super ใน Java

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

ดาวน์โหลดไฟล์ PDF ของสิ่งนี้ vs super ใน Java

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