Үндсэн ялгаа – Боодлын ангилал ба Java дахь анхдагч төрөл
Java бол төрөл бүрийн хэрэглүүр боловсруулахад хэрэглэгддэг алдартай програмчлалын хэл юм. Java-ийн нэг давуу тал нь Объект хандалтат програмчлалыг (OOP) дэмждэг. OOP ашиглан програм эсвэл програм хангамжийг объект ашиглан загварчилж болно. Анги нь объект үүсгэхийн тулд зураг төсөл болгон ашиглагддаг. Програмчлалын хувьд өгөгдлийг хадгалах шаардлагатай байдаг. Өгөгдлийг хадгалахад зориулагдсан санах ойн байршлыг хувьсагч гэж нэрлэдэг. Хувьсагч бүр тодорхой өгөгдлийн төрөлтэй байдаг. Java хэлээр хангагдсан найман анхдагч төрөл байдаг. Эдгээр нь богино, байт, int, хөвөх, давхар, char, логик юм. Заримдаа анхдагч төрлийг объект руу, объектыг анхны төрөл рүү буцаан хөрвүүлэх шаардлагатай болдог. Энэ хөрвүүлэлтийг хийхэд боодлын ангиллыг ашигладаг. Энэ нийтлэлд Java хэл дээрх боодлын ангилал ба анхдагч төрлийн хоорондын ялгааг авч үзэх болно. Java-н боодлын анги болон анхдагч төрлийн хоорондох гол ялгаа нь боодлын анги нь анхдагч төрлийг объект руу хөрвүүлэх, объектыг анхдагч төрөл рүү буцаан хөрвүүлэхэд ашиглагддаг бол команд төрөл нь Java програмчлалын хэлээр урьдчилан тодорхойлсон өгөгдлийн төрөл юм.
Java хэл дээрх Wrapper Class гэж юу вэ?
Java дахь Wrapper анги нь анхдагч өгөгдлийн төрлийг объект, объектыг энгийн төрөл болгон хөрвүүлэхэд ашиглагддаг. Анхдагч өгөгдлийн төрлүүд ч гэсэн анхдагч өгөгдлийн төрлүүд, массивын жагсаалт, векторууд гэх мэт өгөгдлийн бүтцийг хадгалахад ашигладаг. Тиймээс хөрвүүлэхдээ боодлын ангиудыг ашиглах шаардлагатай. Char, byte, short, int гэсэн үндсэн төрлүүдийн харгалзах боодолын анги нь Character, Byte, Short, Integer юм. Long, float, double, boolean-ын харгалзах боодолын ангиуд нь Long, Float, Double болон Boolean байна.
Зураг 01: Боодлын ангиудыг энгийн төрөл болгон хувиргадаг Java програм
Дээрх программын дагуу tobj нь Integer ороох ангийн объект юм. floatobj нь Float wrapper ангийн объект юм. Doubleobj нь Double wrapper ангийн объект юм. Integer объектыг intValue () ашиглан энгийн int болгон хувиргадаг. Үүний нэгэн адил Float объектыг floatValue() ашиглан энгийн хөвөгч рүү хөрвүүлдэг. Double объектыг doubleValue () ашиглан анхдагч давхар болгон хувиргадаг. Хэрэв программист мэдэгдлийг int i=intobj гэж бичвэл; Хөрвүүлэгч дотооддоо bj. Value() руу бичдэг. Боодолын ангийн объектыг харгалзах анхдагч төрөл рүү автоматаар хөрвүүлэх үйл явцыг unboxing гэж нэрлэдэг. ArrayLists гэх мэт цуглуулгууд нь объект хадгалдаг тул Wrapper классыг ашигладаг.
Java-д анхдагч төрөл гэж юу вэ?
Анхан шатны өгөгдлийн төрлүүд нь Java програмчлалын хэлээр урьдчилан тодорхойлсон өгөгдлийн төрлүүд юм. Найман эртний төрөл байдаг. Эдгээр нь byte, short, int, long, float, double, boolean, char юм. Байтын өгөгдлийн төрлийг 8 битийн гарын үсэг бүхий хоёр нөхөх бүхэл тоог хадгалахад ашигладаг. Богино өгөгдлийн төрлийг 16 битийн гарын үсэг бүхий хоёр нөхөх бүхэл тоог хадгалахад ашигладаг. Int өгөгдлийн төрлийг 32 битийн тэмдэгт хоёр нөхөх бүхэл тоог хадгалахад ашигладаг бол урт өгөгдлийн төрлийг 64 битийн хоёр нөхөх бүхэл тоог хадгалахад ашигладаг. Хөвөгч нь нэг нарийвчлалтай 32 бит хөвөх цэгийн утгыг хадгалахад, давхар нь давхар нарийвчлалтай 64 бит хөвөх цэгийн утгыг хадгалахад ашиглагддаг. Boolean нь үнэн эсвэл худлыг илэрхийлэхэд хэрэглэгддэг. Тэмдэгтийг нэг тэмдэгт хадгалахад ашигладаг. Эдгээр нь Java хэл дээрх найман энгийн төрөл юм.
Зураг 02: Анхдагч төрлүүдийг боодлын анги руу хөрвүүлдэг Java програм
Дээрх программын дагуу num1 нь int төрөл юм. num1-ийг Integer.valueOf() руу дамжуулснаар бүхэл тоо руу хөрвүүлнэ. float1 нь хөвөгч утгыг хадгалах боломжтой. Энэ нь float1-г Float.valueOf() руу дамжуулснаар Float төрөл рүү хөрвүүлэгддэг. Үүний нэгэн адил double1 нь давхар утгыг хадгалах боломжтой. Double1-ийг Double.valueOf() руу дамжуулснаар Double төрөлд хувиргадаг. Хэрэв программист мэдэгдлийг Interger intobj=num1 гэж бичвэл; хөрвүүлэгч дотооддоо Integer.valueOf(num1); Анхдагч төрлийг харгалзах боодолын ангийн объект руу автоматаар хөрвүүлэх үйл явцыг autoboxing гэж нэрлэдэг.
Java-н боодлын ангилал болон анхдагч төрлүүдийн хооронд ямар төстэй зүйл байдаг вэ?
Java дахь Wrapper анги болон анхдагч төрлийг програмчлалд өгөгдөл хадгалахад ашиглаж болно
Java-н боодлын ангилал ба анхдагч төрлийн хоёрын ялгаа юу вэ?
Wrapper Class ба Java-н анхдагч төрөл |
|
Wrapper анги нь анхдагч төрлийг объект, объектыг анхдагч төрөл болгон хувиргах механизмаар хангадаг. | Анхан шатны төрөл нь Java-с урьдчилан тодорхойлсон өгөгдлийн төрөл юм. |
Холбоотой анги | |
Объект үүсгэхийн тулд Wrapper классыг ашигладаг; тиймээс энэ нь харгалзах ангитай. | Анхан шатны төрөл нь объект биш тул ангид хамаарахгүй. |
Үгүй утга | |
Боодлын ангийн объектууд нь хоосон утгыг зөвшөөрдөг. | Анхны өгөгдлийн төрөл нь тэг утгыг зөвшөөрдөггүй. |
Санах ой шаардлагатай | |
Шаардлагатай санах ой нь үндсэн төрлөөс өндөр байна. Clustered Index нь нэмэлт зай шаарддаггүй. | Шаардлагатай санах ой нь боодолтой ангиудтай харьцуулахад бага байна. |
Цуглуулга | |
Wrapper классыг ArrayList гэх мэт цуглуулгад ашиглаж болно. | Анхны төрлийг цуглуулгад ашигладаггүй. |
Хураангуй – Боодлын ангилал ба Java дахь анхдагч төрөл
Java хэл нь үндсэн найман төрлийн өгөгдлийн төрлийг өгдөг. Заримдаа анхдагч төрлүүдийг объект руу хөрвүүлэх, мөн объектуудыг анхдагч хэлбэрт шилжүүлэх шаардлагатай болдог. Уг даалгаврыг биелүүлэхийн тулд боодлын ангиудыг ашиглаж болно. Java хэл дээрх боодлын анги болон команд төрлийн хоёрын ялгаа нь боодлын анги нь анхдагч төрлийг объект руу хөрвүүлэх, объектыг анхдагч төрөл рүү буцаан хөрвүүлэхэд ашиглагддаг бол команд төрөл нь Java програмчлалын хэлээр урьдчилан тодорхойлсон өгөгдлийн төрөл юм.