"ฉันอยากจะบอกคุณเกี่ยวกับการกำหนดค่าเริ่มต้นของวัตถุเมื่อคุณสร้างวัตถุ คุณต้องกำหนดค่าเริ่มต้นให้กับตัวแปรเพื่อหลีกเลี่ยงสถานการณ์ที่คุณเข้าถึงวัตถุที่ไม่มีข้อมูลที่จำเป็นสำหรับการทำงานอย่างถูกต้อง"

"ลองพิจารณาวัตถุไฟล์ข้อมูลที่จำเป็นขั้นต่ำสำหรับไฟล์คือชื่อ มันไร้สาระที่จะสร้างไฟล์ที่ไม่มีชื่อ "

"สมมติว่าเราเขียนคลาส MyFile เพื่อทำงานกับไฟล์ ข้อมูลใดที่จำเป็นสำหรับแต่ละอ็อบเจกต์"

"ชื่อของไฟล์ที่เกี่ยวข้องกับวัตถุ?"

"ถูกต้อง ในการทำเช่นนี้ เราเพิ่ม เมธอด initialize () ให้กับคลาสของเรา นี่คือลักษณะที่ปรากฏ"

ตัวอย่าง:
class MyFile
{
    private String filename = null;

    public void initialize(String name)
    {
        this.filename = name;
    }}

"เราได้เพิ่มinitialize method เพื่อให้ทำงานกับ object ได้ด้วยการเรียก method เราสามารถเรียก method ของ object ได้ทันทีหลังจากเรียก initialize method ถ้าเราไม่สามารถทำงานกับ object เราจะเรียกมันว่าinvalidมิฉะนั้น เราบอกว่า object is validงานหลักของเมธอด initialize คือการรับข้อมูลทั้งหมดที่อ็อบเจกต์ต้องการเพื่อทำให้ถูกต้อง "

"ฉันเห็น."

"ตอนนี้มาทำให้งานของเรายากขึ้น หรือถ้าคิดอีกที ให้ง่ายขึ้น ขึ้นอยู่กับว่าคุณมองมันอย่างไร สมมติว่าโปรแกรมเมอร์ที่ใช้คลาสของเราจะสะดวกกว่าที่จะส่งแค่ไดเร็กทอรีของไฟล์และชื่อย่อแทนที่จะเป็นพาธแบบเต็ม เราสามารถสร้างinitialize method อื่นได้ ( Java ให้เราสร้าง method ต่างๆ ที่มีชื่อเหมือนกัน ) เพื่อให้โปรแกรมเมอร์ทำสิ่งนี้ คลาสของเราจะมีลักษณะดังนี้:"

ตัวอย่างที่มีสอง วิธี ในการเริ่มต้น :
class MyFile
{
    private String filename = null;
    public void initialize(String name)
    {
        this.filename = name;
    }

    public void initialize(String folder, String name)
    {
        this.filename = folder + name;
    }}

"อีกสิ่งหนึ่ง: เรามักจะต้องสร้างสำเนาชั่วคราวของไฟล์ถัดจากไฟล์ปัจจุบัน"

"เราสามารถสร้างวิธีการทำสิ่งนี้ได้หรือไม่"

"แน่นอน ดูสิ"

สร้างสำเนาถัดจากไฟล์ปัจจุบัน:
class MyFile
{
    private String filename = null;
    public void initialize(String name)
    {
        this.filename = name;
    }

    public void initialize(String folder, String name)
    {
        this.filename = folder + name;
    }

   // The filename will be stored in the same directory as file.
    public void initialize(MyFile file, String name)
    {
        this.filename = file.getFolder() + name;
    }}

"และฉันสามารถสร้างวิธีการเหล่านี้ได้มากเท่าที่ต้องการหรือไม่"

“อืม มีเหตุผล แต่โดยทางเทคนิคแล้ว ใช่ ได้มากเท่าที่คุณต้องการ”

"ฉันต้องเรียกเมธอด initialize เมื่อใด"

"ทันทีหลังจากสร้างวัตถุ เพื่อให้มันใช้ได้"

ตัวอย่าง:
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");

String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\", "a.txt");

String text = file.readText();
MyFile file = new MyFile();
file.initialize("c:\data\a.txt");

MyFile file2 = new MyFile();
file2.initialize("a.txt");

String text = file2.readText();
2
งาน
Java Syntax,  ระดับบทเรียน
ล็อค
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.

"เมธอด getFolder() นี้คืออะไร"

"เราไม่ได้แสดงรหัสที่นี่จริง ๆ มันแสดงถึงวิธีการที่ส่งคืนสตริงพร้อมชื่อโฟลเดอร์ที่เก็บไฟล์ของเรา"