Java คือไฟล์ . กล่าวอีกนัยหนึ่งเกือบทุกอย่างใน Java ถือว่าเป็นวัตถุ ดังนั้นในขณะที่เขียนโปรแกรมใน Java เราควรรู้วิธีที่เป็นไปได้ทั้งหมดในการสร้างวัตถุใน Java แต่ก่อนที่จะดำน้ำลึกลงไปในวัตถุคุณต้องรู้แนวคิดของ คลาส Java และวัตถุเกี่ยวข้องกับพวกมันอย่างไร
ในโพสต์นี้เราจะพูดถึง 5 วิธีในการสร้างอ็อบเจกต์ใน Java และทำความเข้าใจกับแนวคิดสำคัญทั้งหมดที่จำเป็นในการทำความเข้าใจเมธอด
- สร้างวัตถุโดยใช้คำหลัก 'ใหม่'
- สร้างวัตถุโดยใช้วิธี clone ()
- สร้างวัตถุโดยใช้เมธอด newInstance () ของคลาส
- สร้างวัตถุโดยใช้ deserialization
- สร้างอ็อบเจ็กต์โดยใช้เมธอด newInstance () ของคลาสคอนสตรัคเตอร์
มาเริ่มกันเลย.
สร้างวัตถุโดยใช้คำหลัก 'ใหม่'
ในขณะที่เขียนโปรแกรมใน Java คุณอาจเจอคำหลัก 'ใหม่' อย่างแน่นอน เป็นคีย์เวิร์ดที่ใช้ในการสร้างอ็อบเจ็กต์ซึ่งมีการจัดสรรหน่วยความจำแบบไดนามิกเช่นหน่วยความจำให้กับอ็อบเจ็กต์เหล่านี้ถูกกำหนดที่รันไทม์ และการจัดสรรแบบไดนามิกนี้จำเป็นเกือบตลอดเวลาในขณะที่สร้างวัตถุ จึงใช้วิธีนี้บ่อยกว่าวิธีอื่น
เบราว์เซอร์ db สำหรับการสอน sqlite
ไวยากรณ์ : ClassName ObjectName = classConstructor ใหม่ ()
คลาสสาธารณะ ObjectCreation {String FirstString = 'Hello World' public static void main (String [] args) {ObjectCreation obj = new ObjectCreation () System.out.println (obj.FirstString)}}
เอาท์พุท - สวัสดีชาวโลก
วิธีการสร้างอ็อบเจ็กต์ใน Java นี้สามารถใช้ได้กับคอนสตรัคเตอร์ของคลาสที่ต้องการหากคลาสมีมากกว่า 1 ผู้สร้าง .
สร้าง Objects โดยใช้วิธี clone ()
จะเป็นอย่างไรหากวัตถุที่เราต้องการสร้างควรเป็นสำเนาของไฟล์ เหรอ? ในกรณีนั้นเราสามารถใช้เมธอด clone () clone () เป็นส่วนหนึ่งของคลาส Object แต่ไม่สามารถใช้ได้โดยตรงเนื่องจากเป็นวิธีการป้องกัน
วิธี clone () สามารถใช้ได้หลังจากใช้อินเทอร์เฟซและการจัดการ Cloneable เท่านั้นCloneNotSupportedException
class Message ใช้ Cloneable {String FirstString Message () {this.FirstString = 'Hello World'} Public Object clone () พ่น CloneNotSupportedException {return super.clone ()}} คลาสสาธารณะ ObjectCreation {public static void main (String [] args) พ่น CloneNotSupportedException {Message FirstObj = new Message () System.out.println (FirstObj.FirstString) Message SecondObj = (Message) FirstObj.clone () System.out.println (SecondObj.FirstString) SecondObj.FirstString = 'ยินดีต้อนรับสู่โลก ของการเขียนโปรแกรม 'System.out.println (SecondObj.FirstString) System.out.println (FirstObj.FirstString)}}
เอาท์พุท -
สวัสดีชาวโลก
สวัสดีชาวโลก
ยินดีต้อนรับสู่โลกแห่งการเขียนโปรแกรม
คำถามสัมภาษณ์นักวิทยาศาสตร์ข้อมูลของ Google
ในโปรแกรมข้างต้นเราได้สร้างสำเนาของวัตถุที่เรามีอยู่แล้ว เพื่อให้แน่ใจว่าทั้ง ไม่ได้ชี้ไปที่ตำแหน่งหน่วยความจำเดียวกันจำเป็นอย่างยิ่งที่จะต้องเปลี่ยนค่าของ 'FirstString' สำหรับวัตถุที่สองจากนั้นจึงพิมพ์ค่าของวัตถุทั้งสอง
สร้างวัตถุโดยใช้เมธอด newInstance () ของคลาส Class
วิธีนี้ไม่ได้ใช้บ่อยสำหรับการสร้างวัตถุ วิธีการสร้างอ็อบเจกต์นี้ใช้ถ้าเรารู้ชื่อคลาสและ ตัวสร้างเริ่มต้น เป็นที่สาธารณะในธรรมชาติ ในการใช้วิธีนี้ในการสร้างวัตถุเราต้องจัดการข้อยกเว้น 3 ข้อ
ClassNotFoundException- ข้อยกเว้นนี้เกิดขึ้นหาก JVM ไม่พบคลาสที่ส่งผ่านเป็นอาร์กิวเมนต์
InstantiationException- ข้อยกเว้นนี้เกิดขึ้นหากคลาสที่กำหนดไม่มีตัวสร้างเริ่มต้น
IllegalAccessException- ข้อยกเว้นนี้เกิดขึ้นหากเราไม่มีสิทธิ์เข้าถึงที่ระบุ ชั้นเรียน .
เมื่อเราดูแลข้อยกเว้นเหล่านี้แล้วเราก็พร้อมที่จะไป
class ObjectCreation {String FirstString = 'Hello World' public static void main (String [] args) {ลองใช้ {Class Message = Class.forName ('ObjectCreation') ObjectCreation obj = (ObjectCreation) Message.newInstance () System.out.println (obj.FirstString)} catch (ClassNotFoundException e) {e.printStackTrace ()} catch (InstantiationException e) {e.printStackTrace ()} catch (IllegalAccessException e) {e.printStackTrace ()}}}
เอาท์พุท - สวัสดีชาวโลก
สร้างวัตถุโดยใช้ deserialization
ใน Java Serialization ใช้เพื่อแปลงสถานะปัจจุบันของอ็อบเจ็กต์ให้เป็นไบต์สตรีม deserialization เป็นสิ่งที่ตรงกันข้ามกับที่เราสร้างวัตถุขึ้นใหม่โดยใช้ไบต์สตรีม สำหรับขั้นตอนการทำให้เป็นอนุกรมเราจำเป็นต้องใช้อินเทอร์เฟซแบบอนุกรม การจัดการข้อยกเว้นจะต้องทำเพื่อสร้างวัตถุโดยใช้วิธีนี้
ObjectInputStream objectInputStream = ใหม่ ObjectInputStream (inputStream) Classname object = (classname) objectInputStream.readObject ()
สร้างออบเจ็กต์โดยใช้เมธอด newInstance () ของคลาส Constructor
เราเห็นเมธอด newInstance ของคลาสคลาสที่เราใช้สร้างอ็อบเจกต์ ในทำนองเดียวกันตัวสร้างคลาสยังประกอบด้วยเมธอด newInstance () ซึ่งสามารถใช้เพื่อสร้างอ็อบเจ็กต์ ตัวสร้างเริ่มต้นอื่น ๆ สามารถทำได้ด้วยความช่วยเหลือของวิธีนี้เราสามารถโทรได้ ตัวสร้างพารามิเตอร์ .
import java.lang.reflect. * คลาสสาธารณะ ObjectCreation {private String FirstString = 'Hello World' ObjectCreation () {} public void changeMessage (String message) {this.FirstString = message} public static void main (String [] args) { ลองใช้ {Constructor constructor = ObjectCreation.class.getDeclaredConstructor () ObjectCreation objectCreation = constructor.newInstance () objectCreation.changeMessage ('Welcome to the world of programming') System.out.println (objectCreation.FirstString)} catch (Exception e) { e.printStackTrace ()}}}
เอาท์พุท -
ยินดีต้อนรับสู่โลกแห่งการเขียนโปรแกรม
นี่คือ 5 วิธีในการสร้างวัตถุในรูปแบบ บางคนใช้บ่อยกว่าคนอื่น ๆ แต่ละวิธีมีข้อดีและข้อเสียของตัวเอง ในท้ายที่สุดทางเลือกก็เป็นของคุณ
Java เป็นภาษาที่น่าสนใจ แต่จะยุ่งยากหากปัจจัยพื้นฐานไม่ชัดเจน ในการเริ่มต้นการเรียนรู้ของคุณและฝึกฝนทักษะทั้งหมดที่เกี่ยวข้องกับเทคโนโลยี java ลงทะเบียนในไฟล์ และปลดปล่อยนักพัฒนา java ในตัวคุณ
มีคำถามสำหรับเรา? โปรดระบุสิ่งนี้ในส่วนความคิดเห็นของบทความ 'วัตถุใน Java' และเราจะติดต่อกลับโดยเร็วที่สุด