หน้าแรก
หน้าแรก
ความสัมพันธ์เหล่านี้ขึ้นอยู่กับการใช้งานเป็นหลัก สิ่งนี้กำหนดว่าคลาสบางคลาสมีบางสิ่งหรือไม่ ความสัมพันธ์นี้ช่วยลดความซ้ำซ้อนของโค้ดและจุดบกพร่อง มาดูตัวอย่างกัน − ตัวอย่าง public class Vehicle{} public class Speed{} public class Van extends Vehicle { private Speed sp; } นี่แสดงว่าคลาส
IS-A เป็นวิธีการพูดว่า:วัตถุนี้เป็นประเภทของวัตถุนั้น ให้เราดูว่าคีย์เวิร์ดขยายถูกใช้อย่างไรเพื่อให้ได้มาซึ่งการสืบทอด public class Animal { } public class Mammal extends Animal { } public class Reptile extends Animal { } public class Dog extends Mammal { } ทีนี้ ถ้าเราพิจารณาความสัมพันธ์แบบ IS-A เ
ความสัมพันธ์แบบ IS-A IS-A เป็นวิธีการพูด − วัตถุนี้เป็นประเภทของวัตถุนั้น ให้เราดูว่าคีย์เวิร์ดขยายนั้นใช้เพื่อให้บรรลุการสืบทอดอย่างไร public class Animal { } public class Mammal extends Animal { } public class Reptile extends Animal { } public class Dog extends Mammal { } ทีนี้ ถ้าเราพิจารณาความ
วิธีการโอเวอร์โหลดเป็นประเภทของความหลากหลายแบบคงที่ ในการโอเวอร์โหลดเมธอด เราสามารถกำหนดเมธอดหลายเมธอดที่มีชื่อเดียวกันแต่ใช้พารามิเตอร์ต่างกัน ลองพิจารณาโปรแกรมตัวอย่างต่อไปนี้ ตัวอย่าง public class Tester { public static void main(String args[]) { Tester tester =
วิธีการโอเวอร์โหลดสามารถทำได้สามวิธีดังต่อไปนี้ - โดยการเปลี่ยนจำนวนพารามิเตอร์ในเมธอด โดยการเปลี่ยนลำดับของประเภทพารามิเตอร์ โดยการเปลี่ยนประเภทข้อมูลของพารามิเตอร์ ดูตัวอย่างด้านล่าง− ตัวอย่าง public class Tester { public static void main(String args[]) { Teste
เมธอดโอเวอร์โหลดช่วยสร้างเมธอดที่มีชื่อเดียวกันเพื่อดำเนินการคล้ายกันกับพารามิเตอร์ประเภทต่างๆ เราสามารถใช้ type Promotion ได้ในกรณีที่ตัวแปรเป็นประเภทที่คล้ายคลึงกัน การส่งเสริมการขายประเภทจะเลื่อนค่าช่วงที่ต่ำกว่าเป็นค่าช่วงที่สูงกว่าโดยอัตโนมัติ ตัวอย่างเช่น ตัวแปรไบต์สามารถกำหนดให้กับตัวแปร int
การแทนที่คือความสามารถในการกำหนดพฤติกรรมเฉพาะสำหรับประเภทคลาสย่อย ซึ่งหมายความว่าคลาสย่อยสามารถใช้เมธอดคลาสพาเรนต์ได้ตามความต้องการ ในแง่วัตถุ การแทนที่หมายถึงการแทนที่ฟังก์ชันการทำงานของวิธีการที่มีอยู่ ตัวอย่าง มาดูตัวอย่างกัน class Animal { public void move() {  
ต่อไปนี้คือกฎที่เราควรพิจารณาในขณะที่แทนที่เมธอดอย่างถูกต้อง - รายการอาร์กิวเมนต์ควรเหมือนกับรายการที่ถูกแทนที่ทุกประการ ประเภทการส่งคืนควรเหมือนกันหรือประเภทย่อยของประเภทการส่งคืนที่ประกาศในวิธีการแทนที่ดั้งเดิมในซูเปอร์คลาส ระดับการเข้าถึงไม่สามารถจำกัดได้มากกว่าระดับการเข้าถึงของเมธอดที่ถูกแทนที
วิธีการโอเวอร์โหลดเป็นประเภทของความหลากหลายในการคอมไพล์เวลา ในขณะที่การแทนที่เมธอดเป็นประเภทของรันไทม์พหุสัณฐาน การโอเวอร์โหลดเมธอดจะเพิ่มความสามารถในการอ่านโค้ด ในขณะที่การแทนที่เมธอดมีการใช้งานเมธอดเฉพาะในคลาสย่อยเพื่อแทนที่โค้ดที่มีอยู่ในซูเปอร์คลาส เมธอดโอเวอร์โหลดอยู่ภายในคลาสที่เมธอดโอเวอร์ไรด
ได้ เราสามารถแทนที่เมธอดโดยเปลี่ยนเฉพาะตัวแก้ไขการเข้าถึงใน java ตามกฎต่อไปนี้: ระดับการเข้าถึงไม่สามารถจำกัดได้มากกว่าระดับการเข้าถึงของเมธอดที่ถูกแทนที่ ตัวอย่างเช่น หากเมธอด superclass ถูกประกาศให้เป็นสาธารณะ เมธอดการแทนที่ในคลาสย่อยจะไม่สามารถเป็นไพรเวตหรือป้องกันได้
ได้ เราสามารถแทนที่เมธอดโดยการเปลี่ยนเฉพาะการจัดการข้อยกเว้นในจาวาที่เกี่ยวข้องกับกฎต่อไปนี้ - วิธีการแทนที่สามารถโยนข้อยกเว้นที่ไม่ได้ตรวจสอบ โดยไม่คำนึงว่าวิธีการที่ถูกแทนที่จะส่งข้อยกเว้นหรือไม่ อย่างไรก็ตาม วิธีการแทนที่ไม่ควรโยนข้อยกเว้นที่ตรวจสอบแล้วซึ่งใหม่หรือกว้างกว่าที่ประกาศโดยวิธีการที่
ประเภทการส่งคืน Covariant หมายถึงประเภทการส่งคืนของวิธีการแทนที่ อนุญาตให้จำกัดประเภทการส่งคืนของวิธีการที่ถูกแทนที่โดยไม่จำเป็นต้องส่งประเภทหรือตรวจสอบประเภทการส่งคืน ประเภทผลตอบแทนร่วมใช้ได้กับประเภทผลตอบแทนที่ไม่ใช่แบบดั้งเดิมเท่านั้น จาก Java 5 เป็นต้นไป เราสามารถแทนที่เมธอดโดยการเปลี่ยนประเภทก
ตัวแปร super หมายถึงอินสแตนซ์ของคลาสพาเรนต์ทันที ตัวแปรพิเศษสามารถเรียกใช้เมธอดคลาสพาเรนต์ได้ทันที super() ทำหน้าที่เป็นตัวสร้างคลาสหลักทันที และควรเป็นบรรทัดแรกในตัวสร้างคลาสลูก เมื่อเรียกใช้เมธอดที่ถูกแทนที่ในเวอร์ชันซูเปอร์คลาส ซูเปอร์คีย์เวิร์ดจะถูกใช้ ตัวอย่าง class Animal { publ
งานบล็อกตัวเริ่มต้นอินสแตนซ์ใช้เพื่อเริ่มต้นคุณสมบัติของวัตถุ มันถูกเรียกใช้ก่อนที่ตัวสร้างจะถูกเรียกใช้ มันถูกเรียกใช้ทุกครั้งที่มีการสร้างวัตถุ ดูตัวอย่างด้านล่าง − ตัวอย่าง public class Tester { { System.out.println("Inside instance initializer block"
final เป็นโมดิฟายเออร์ที่ไม่สามารถเข้าถึงสำหรับอิลิเมนต์ Java ตัวปรับแต่งขั้นสุดท้ายจะใช้สำหรับการสิ้นสุดการใช้งานของคลาส เมธอด และตัวแปร ตัวแปรสุดท้าย ตัวแปรสุดท้ายสามารถเริ่มต้นได้เพียงครั้งเดียวเท่านั้น ตัวแปรอ้างอิงที่ประกาศขั้นสุดท้ายไม่สามารถกำหนดใหม่เพื่ออ้างถึงอ็อบเจกต์อื่นได้ อย่างไรก็ตาม ข
ตัวแปรสุดท้ายสามารถเริ่มต้นได้เพียงครั้งเดียวเท่านั้น ตัวแปรอ้างอิงที่ประกาศขั้นสุดท้ายไม่สามารถกำหนดใหม่เพื่ออ้างถึงอ็อบเจกต์อื่นได้ อย่างไรก็ตาม ข้อมูลภายในวัตถุสามารถเปลี่ยนแปลงได้ ดังนั้นสถานะของอ็อบเจ็กต์สามารถเปลี่ยนแปลงได้ แต่ไม่สามารถอ้างอิงได้ ด้วยตัวแปร ตัวแก้ไขขั้นสุดท้าย มักใช้กับสแตติ
วัตถุประสงค์หลักของการใช้คลาสที่ถูกประกาศเป็นขั้นสุดท้ายคือการป้องกันไม่ให้คลาสถูกจัดเป็นคลาสย่อย หากคลาสถูกทำเครื่องหมายเป็นคลาสสุดท้าย คลาสจะไม่สามารถสืบทอดคุณสมบัติใดๆ จากคลาสสุดท้ายได้ public final class Test { // body of class }
พารามิเตอร์สุดท้ายคือคีย์เวิร์ดในการเขียนโปรแกรมจาวาซึ่งใช้ในการประกาศค่าคงที่ เช่น PIE อย่างที่คุณทราบค่าของ PIE คือ 3.14 และไม่เปลี่ยนแปลง ดังนั้นในระหว่างการเขียนโปรแกรม คุณต้องพูดถึง int PIE ขั้นสุดท้าย นอกจากนี้ การกล่าวถึงคีย์เวิร์ดสุดท้ายในคลาสและเมธอดจะจำกัดจากการสืบทอดและการขยาย
คีย์เวิร์ดสุดท้ายป้องกันไม่ให้เมธอดถูกแทนที่ คอนสตรัคเตอร์ไม่สามารถแทนที่ได้ Java ไม่อนุญาตให้ทำเครื่องหมายเป็นขั้นสุดท้าย
ใช่! คุณสามารถเริ่มต้นตัวแปรสุดท้ายที่ว่างเปล่าในคอนสตรัคเตอร์หรือบล็อกการเริ่มต้นอินสแตนซ์ได้