ในส่วนก่อนหน้านี้เราได้เรียนรู้เกี่ยวกับวัตถุ String วัตถุสตริงที่สร้างโดยคลาส String ไม่สามารถแก้ไขได้ กล่าวคือ สตริงไม่สามารถแก้ไข ลบ หรือแทนที่ อักขระ ในสตริงได้ ถูกสร้างขึ้น เอนทิตีของมันไม่สามารถเปลี่ยนแปลงได้ ตัวอย่างเช่น:
Strings=newString(ฉันชอบเดิน);
ในหมู่พวกเขา ฉันชอบที่จะเดินเป็นตัวตนและไม่สามารถเปลี่ยนแปลงได้อีกต่อไป
ดังนั้นในส่วนนี้ เราจะเรียนรู้เกี่ยวกับ คลาส StringBuffer ซึ่งสามารถสร้างลำดับสตริงที่ปรับเปลี่ยนได้ กล่าวคือ พื้นที่หน่วยความจำกายภาพของอ็อบเจ็กต์ของคลาสนี้สามารถเปลี่ยนขนาดได้โดยอัตโนมัติเพื่ออำนวยความสะดวกในการจัดเก็บลำดับอักขระของตัวแปร
ตัวอย่างเช่น วัตถุ StringBuffer สามารถผนวกลำดับของอักขระได้โดยการเรียกเมธอด append:
StringBuffers=newStringBuffer(ฉันชอบ);
จากนั้นวัตถุ s สามารถเรียกวิธีการผนวกเพื่อต่อท้ายลำดับสตริง:
s.ผนวก(ว่ายน้ำ);
ในหมู่พวกเขา ฉันชอบว่ายน้ำในฐานะเอนทิตี และเอนทิตีก็เปลี่ยนไป
คลาส StringBuffer มีตัวสร้างสามตัว:
ใช้ตัวสร้างแบบไม่มีพารามิเตอร์ตัวแรกเพื่อสร้างออบเจ็กต์ StringBuffer จากนั้นความจุเริ่มต้นของเอนทิตีที่จัดสรรให้กับออบเจ็กต์สามารถเก็บได้ 16 อักขระ เมื่อความยาวของลำดับอักขระที่จัดเก็บไว้ในเอนทิตีของออบเจ็กต์มากกว่า 16 ความจุของ เอนทิตีจะเพิ่มขึ้นโดยอัตโนมัติเพื่อจัดเก็บอักขระที่เพิ่ม วัตถุ StringBuffer สามารถรับความยาวของลำดับอักขระที่จัดเก็บไว้ในเอนทิตีผ่านเมธอด length() และรับความจุที่แท้จริงของเอนทิตีปัจจุบันผ่านเมธอด Capacity()
ใช้ตัวสร้างที่สองเพื่อสร้างวัตถุ StringBuffer จากนั้นคุณสามารถระบุได้ว่าความจุเริ่มต้นของเอนทิตีที่จัดสรรให้กับออบเจ็กต์คือจำนวนอักขระที่ระบุโดยขนาดพารามิเตอร์ เมื่อความยาวของลำดับอักขระที่จัดเก็บไว้ในเอนทิตีของวัตถุ มีขนาดใหญ่กว่าอักขระขนาด เอนทิตีความจุจะเพิ่มขึ้นโดยอัตโนมัติเพื่อรองรับอักขระที่เพิ่ม
การใช้วิธีคอนสตรัคเตอร์ที่สามเพื่อสร้างออบเจ็กต์ StringBuffer คุณสามารถระบุได้ว่าความจุเริ่มต้นของเอนทิตีที่จัดสรรให้กับออบเจ็กต์คือความยาวของสตริงพารามิเตอร์ s บวกอีก 16 อักขระ