ความแตกต่างระหว่าง C++ และ Java คืออะไร
ที่มา: Hackernoon ภาษาการเขียนโปรแกรม C++ และ Java เป็นภาษาที่ได้รับความนิยมมากที่สุดในปัจจุบัน เรามาพูดถึงความแตกต่างที่สำคัญระหว่าง C++ และ Java กันดีกว่า![คอฟฟี่เบรค #118. ความแตกต่างระหว่างภาษา C++ และ Java คืออะไร ตัวสร้างส่วนตัวใน Java - 1](https://cdn.javarush.com/images/article/c9c74f6c-0084-4e34-8276-3d7c3ccb3c9c/800.jpeg)
-
การพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ - ผู้ใช้และ ID ผู้ใช้ใน Java เป็นเอนทิตีที่แตกต่างกัน
-
ชื่อวิธี . หากชื่อวิธีการประกอบด้วยคำเดียว จะต้องขึ้นต้นด้วยอักษรตัวพิมพ์เล็ก ตัวอย่าง: firstMethodName ( )
-
UpperCamelCase ใช้สำหรับตั้งชื่อคลาส หากชื่อประกอบด้วยคำเดียวจะต้องขึ้นต้นด้วยตัวพิมพ์ใหญ่ ตัวอย่าง: FirstClassName
-
ชื่อของไฟล์โปรแกรมจะต้องตรงกับชื่อของคลาสทุกประการโดยคำนึงถึงความละเอียดอ่อนของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ ตัวอย่างเช่น หากคลาสเรียกว่าFirstClassName ไฟล์ควรเรียกว่าFirstClassName.java
-
ตัวระบุจะขึ้นต้นด้วยตัวอักษร (AZ, az), $ หรือขีดล่าง _ เสมอ
ภาษา C++ คืออะไร?
C++ เป็นภาษาโปรแกรมทั่วไปที่คอมไพล์และพิมพ์ชัดเจน รองรับกระบวนทัศน์การเขียนโปรแกรมที่แตกต่างกัน: ขั้นตอน, ทั่วไป, ฟังก์ชัน; ความสนใจส่วนใหญ่มุ่งเน้นไปที่การสนับสนุนการเขียนโปรแกรมเชิงวัตถุ โดยพื้นฐานแล้ว C++ คือชุดคำสั่งที่บอกคอมพิวเตอร์ว่าต้องทำอะไร ชุดคำสั่งนี้มักเรียกว่าซอร์สโค้ดหรือโค้ดเพียงอย่างเดียว คำสั่งอาจเป็น "ฟังก์ชัน" หรือ "คำสำคัญ" คำหลัก (คำสงวน C/C++) เป็นส่วนสำคัญของภาษา ฟังก์ชันเป็นองค์ประกอบที่ซับซ้อนเนื่องจากเขียนขึ้นในรูปของฟังก์ชันที่เรียบง่ายกว่า โครงสร้างของฟังก์ชัน C++ และ Java มีลักษณะคล้ายกับเนื้อหาของหนังสือ สารบัญสามารถแสดงบทต่างๆ ของหนังสือ แต่ละบทในหนังสือสามารถมีสารบัญของตัวเองซึ่งประกอบด้วยย่อหน้า แต่ละย่อหน้าสามารถมีย่อหน้าย่อยของตัวเองได้ แม้ว่า C++ จะมีฟังก์ชันทั่วไปและคำสงวนมากมายที่คุณสามารถใช้ได้ แต่ภาษายังคงต้องการให้คุณเขียนฟังก์ชันของคุณเองความแตกต่างที่สำคัญระหว่าง C++ และ Java
ทั้ง Java และ C++ เป็นภาษาการเขียนโปรแกรมเชิงวัตถุ แต่นั่นคือจุดที่ความคล้ายคลึงกันสิ้นสุดลง มีความแตกต่างมากขึ้นระหว่างพวกเขา แน่นอนว่ามีความแตกต่างที่สำคัญระหว่าง C++ และ Java ในการเลือกภาษาใดภาษาหนึ่งสำหรับการพัฒนาโครงการหรือกรณีเฉพาะอื่น ๆ นี่คือเกณฑ์ที่ต้องใส่ใจห้องสมุด
จาวาหรือ C++? ห้องสมุดไหนใหญ่กว่าหรือดีกว่า? Java มีไลบรารี่อีกมากมาย แต่คุณจะรู้ได้อย่างไรว่าอันไหนควรใช้และอันไหนไม่ควร? นี่คือคำอธิบายสั้น ๆ เกี่ยวกับบางส่วน:- lang, util, nio, io, net
- Java ยังมีไลบรารีสำหรับการทำงานกับเฟรมเวิร์ก GUI: javax.swing (ส่วนขยายที่ค่อนข้างล้าสมัยของ java.awt ที่เก่ากว่า)
- คุณยังสามารถเล่นเพลงและสร้างไฟล์ MIDI โดยใช้ java.sound เป็นต้น
กลไกการป้อนข้อมูล
Java ได้รับการตีความเป็นหลัก ดังนั้นจึงเป็นอิสระจากแพลตฟอร์ม C ++ สร้างโค้ดวัตถุ รหัสเดียวกันไม่สามารถทำงานบนแพลตฟอร์มที่แตกต่างกันได้การสนับสนุนเธรด
Java มีการสนับสนุนเธรดในตัว Java มีคลาสเธรดที่สืบทอดมาเพื่อสร้างเธรดใหม่และแทนที่วิธีการเริ่มต้น โปรดทราบว่า C++ ไม่รองรับเธรดดั้งเดิม เพื่อวัตถุประสงค์เหล่านี้ มีการใช้ไลบรารีของบุคคลที่สามที่ไม่ได้มาตรฐานวิธีการสนับสนุน
Java มีเมธอดโอเวอร์โหลด แต่ไม่มีโอเปอเรเตอร์โอเวอร์โหลด คลาส String ไม่ได้ใช้ตัวดำเนินการ + และ += เพื่อเชื่อมสตริงเข้าด้วยกัน และ Stringexpressions ใช้ประเภทการแปลงอัตโนมัติ แต่นี่เป็นกรณีพิเศษในตัว C++ รองรับทั้งการโอเวอร์โหลดเมธอดและโอเปอเรเตอร์โอเวอร์โหลดการจัดการหน่วยความจำ
Java รองรับการควบคุมการจัดสรรฮีปอัตโนมัติ แต่ไม่รองรับตัวทำลาย ใน C++ การสนับสนุน destructors จะถูกเปิดใช้งานโดยอัตโนมัติเมื่อวัตถุถูกทำลายมรดกหลายรายการ
Java ไม่ได้จัดเตรียมการสืบทอดหลายรายการ อย่างน้อยก็ไม่ใช่ในลักษณะเดียวกับ C++ การสืบทอดหลายรายการเป็นคุณลักษณะของ C ++ ซึ่งคลาสสามารถสืบทอดจากคลาสมากกว่าหนึ่งคลาสบทสรุป
นั่นคือความแตกต่างทั้งหมดระหว่าง Java และ C++ ภาษา Java เหมาะสำหรับโครงการเชิงพาณิชย์ เป็นที่ต้องการอย่างมากในบริษัทขนาดใหญ่ เนื่องจากการบำรุงรักษาและการปรับโครงสร้างโครงการที่มีอยู่จะยังคงมีความเกี่ยวข้องอยู่เสมอ อย่างน้อยก็ในธนาคารและสถาบันการเงินอื่นๆ คุณสามารถจัดการการพัฒนาข้ามแพลตฟอร์มได้ค่อนข้างดีและใช้เพื่อสร้างระบบสำหรับแพลตฟอร์มใดก็ได้ อย่างไรก็ตาม C++ มีข้อได้เปรียบเหนือ Java อื่นๆ เช่น รองรับทั้งการโอเวอร์โหลดเมธอดและการโอเวอร์โหลดของโอเปอเรเตอร์ การรองรับตัวทำลาย ฯลฯตัวสร้างส่วนตัวใน Java
ที่มา: Dev.to ตัวสร้างใน Java เป็นวิธีการพิเศษที่มีชื่อเดียวกันกับชื่อคลาสหรือชื่อไฟล์ เมื่อเราเรียกวัตถุ ตัวสร้างภายในจะถูกเรียกเสมอ ส่วนใหญ่จะใช้เพื่อเริ่มต้นสถานะของวัตถุหรือค่าของตัวแปรในคลาส![คอฟฟี่เบรค #118. ความแตกต่างระหว่างภาษา C++ และ Java คืออะไร ตัวสร้างส่วนตัวใน Java - 2](https://cdn.javarush.com/images/article/b4b12137-54d8-4511-90b5-53fd7186e7ee/800.jpeg)
- ไม่อนุญาตให้คลาสเป็นคลาสย่อย
- ไม่อนุญาตให้คุณสร้างวัตถุนอกชั้นเรียน
- หากคลาสมีคอนสตรัคเตอร์ส่วนตัว เมื่อเราพยายามขยายคลาส จะเกิดข้อผิดพลาดเวลาคอมไพล์
- เราไม่สามารถเข้าถึงตัวสร้างส่วนตัวจากคลาสอื่นได้
- หากคลาสของเรามีเมธอดคงที่ทั้งหมด เราก็สามารถใช้ไพรเวตคอนสตรัคเตอร์ได้
- หากวิธีการทั้งหมดเป็นแบบคงที่ เราสามารถใช้ตัวสร้างส่วนตัวได้
- เราสามารถใช้ฟังก์ชันสาธารณะเพื่อเรียกตัวสร้างส่วนตัวได้หากวัตถุไม่ได้เตรียมใช้งาน
- เราสามารถส่งคืนอินสแตนซ์ของวัตถุนี้ได้หากวัตถุนั้นเตรียมใช้งานแล้วเท่านั้น
public class PrivateConstructorDemo
{
//creating an instance variable of the class Tester
private static PrivateConstructorDemo pcd;
//creating a private constructor
private PrivateConstructorDemo()
{
}
//creating a static method named getInstance()
public static PrivateConstructorDemo getInstance()
{
if(pcd == null)
{
//creating a constructor of the class
pcd = new PrivateConstructorDemo();
}
return pcd;
}
//main() method
public static void main(String args[])
{
PrivateConstructorDemo pcd = PrivateConstructorDemo.getInstance();
PrivateConstructorDemo pcd1 = PrivateConstructorDemo.getInstance();
//invokes the getInstance() method and prints the corresponding result
System.out.println(pcd.equals(pcd1));
}
}
บทสรุป:
จริง
ตอนนี้เรามาดูกรณีการใช้งานสำหรับตัวสร้างส่วนตัวกัน วัตถุประสงค์หลักของการใช้ตัวสร้างส่วนตัวคือการจำกัดการสร้างวัตถุ ตัวสร้างส่วนตัวยังใช้เพื่อใช้รูปแบบการออกแบบซิงเกิลตัน ตัวเลือกสำหรับการใช้ตัวสร้างส่วนตัวมีดังนี้:
- สามารถใช้ได้กับคลาสเฉพาะสมาชิกแบบคงที่
- สามารถใช้กับยูทิลิตี้แบบคงที่หรือคลาสคงที่
- นอกจากนี้ยังสามารถใช้เพื่อสร้างคลาสเดี่ยวได้
- สามารถใช้สำหรับการตั้งชื่อได้ เช่น การสร้างโดยใช้วิธีการจากโรงงาน
- นอกจากนี้ยังใช้เพื่อหลีกเลี่ยงคลาสย่อย
- รวมถึงวิธีการของโรงงาน
GO TO FULL VERSION