"๊ฐ์ฒด ์ดˆ๊ธฐํ™”์— ๋Œ€ํ•ด ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๊ฐ€ ์—†๋Š” ๊ฐ์ฒด์— ์•ก์„ธ์Šคํ•˜๋Š” ์ƒํ™ฉ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด๋ฅผ ๋ณ€์ˆ˜์— ์ดˆ๊ธฐ ๊ฐ’์„ ํ• ๋‹นํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค ."

"ํŒŒ์ผ ๊ฐœ์ฒด๋ฅผ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค. ํŒŒ์ผ์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ •๋ณด๋Š” ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„ ์—†๋Š” ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์–ด๋ฆฌ์„์€ ์ผ์ž…๋‹ˆ๋‹ค. "

"ํŒŒ์ผ ์ž‘์—…์„ ์œ„ํ•ด MyFile ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฐœ์ฒด์— ํ•„์š”ํ•œ ์ •๋ณด๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"

"๊ฐœ์ฒด์™€ ๊ด€๋ จ๋œ ํŒŒ์ผ ์ด๋ฆ„?"

"๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ์ดˆ๊ธฐํ™” () ๋ฉ”์„œ๋“œ๋ฅผ ํด๋ž˜์Šค์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ์Šต๋‹ˆ๋‹ค."

์˜ˆ:
class MyFile
{
    private String filename = null;

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

"๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ์ฒด๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ดˆ๊ธฐํ™” ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค . ์ดˆ๊ธฐํ™” ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ์งํ›„์— ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์—†์œผ๋ฉด ๋ฌดํšจ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๊ฐœ์ฒด๊ฐ€ ์œ ํšจ ํ•˜๋‹ค๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค . ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ์˜ ์ฃผ์š” ์ž‘์—…์€ ๊ฐœ์ฒด๊ฐ€ ๊ฐœ์ฒด๋ฅผ ์œ ํšจํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. "

"์•Œ๊ฒ ์–ด์š”."

"์ด์ œ ์šฐ๋ฆฌ ์ž‘์—…์„ ๋” ์–ด๋ ต๊ฒŒ ๋งŒ๋“ค์–ด ๋ด…์‹œ๋‹ค. ๋˜๋Š” ๋‹ค์‹œ ์ƒ๊ฐํ•ด ๋ณด๋ฉด ๋” ์‰ฝ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋ณด๋А๋ƒ์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ „์ฒด ๊ฒฝ๋กœ ๋Œ€์‹  ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ์™€ ์งง์€ ์ด๋ฆ„๋งŒ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๋” ํŽธ๋ฆฌํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค๋ฅธ ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ( Java๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋™์ผํ•œ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ ) ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค."

๋‘ ๊ฐ€์ง€ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•์ด ์žˆ๋Š” ์˜ˆ :
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;
    }

โ€ฆ
}

"๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๋งŒํผ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?"

"๊ธ€์Ž„, ์ด์œ ๊ฐ€ ์žˆ๋Š” ํ•œ. ํ•˜์ง€๋งŒ ์—„๋ฐ€ํžˆ ๋งํ•˜๋ฉด ๋„ค, ์›ํ•˜๋Š” ๋งŒํผ."

"์–ธ์ œ ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•˜๋‚˜์š”?"

"๊ฐœ์ฒด๋ฅผ ๋งŒ๋“  ์งํ›„์— ์œ ํšจํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค."

์˜ˆ:
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();

"์ด getFolder() ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?"

"์‹ค์ œ๋กœ ์—ฌ๊ธฐ์— ์ฝ”๋“œ๋ฅผ ํ‘œ์‹œํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ์ด ์ €์žฅ๋œ ํด๋”์˜ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค."