Item 16. Accessor Method

public ํด๋ž˜์Šค์—์„œ๋Š” public ํ•„๋“œ๊ฐ€ ์•„๋‹Œ ์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

  • ์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํด๋ž˜์Šค


class Point {
    public double x;
    public double y;
}

์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ํด๋ž˜์Šค๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•„๋“œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์–ด ์บก์Аํ™”์˜ ์ด์ ์„ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•œ๋‹ค. java.awt.package์˜ Point์™€ Dimension ํด๋ž˜์Šค๊ฐ€ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑ๋˜์—ˆ๋Š”๋ฐ, ์—ฌ์ „ํžˆ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ์•ˆ ์ข‹์€ ์˜ˆ์ด๋‹ค.

๋งŒ์•ฝ ๋ถˆ๋ณ€์œผ๋กœ ์„ ์–ธ๋˜์—ˆ์œผ๋ฉด ๊ทธ๋‚˜๋งˆ ๋‚ซ์ง€๋งŒ, API๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋Š” ๋‚ด๋ถ€ ํ‘œํ˜„์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†๋Š” ๋‹จ์ ์ด ์—ฌ์ „ํžˆ ์กด์žฌํ•œ๋‹ค.

  • ์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ํด๋ž˜์Šค

class Point {
    private double x;
    private double y;

    public Point(double x, double y) {
        this.x = x;
        this.y = y;
    }

    public double getX() {
        return x;
    }

    public void setX(double x) {
        this.x = x;
    }

    public double getY() {
        return y;
    }

    public void setY(double y) {
        this.y = y;
    }
}

์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€ ํ‘œํ˜„ ๋ฐฉ์‹์„ ์–ธ์ œ๋“  ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.

public ํด๋ž˜์Šค๊ฐ€ ์•„๋‹Œ package-private ํด๋ž˜์Šค ํ˜น์€ private ์ค‘์ฒฉ ํด๋ž˜์Šค

์ด ๋ฌธ์„œ์—์„œ ๋‹ค๋ฃฌ ํŠน์ง•๋“ค์€ public ํด๋ž˜์Šค์—๋งŒ ํ•ด๋‹นํ•œ๋‹ค. package-private ํด๋ž˜์Šค๋‚˜ private ์ค‘์ฒฉ ํด๋ž˜์Šค๋ผ๋ฉด ๋ฐ์ดํ„ฐ ํ•„๋“œ๋ฅผ ๋…ธ์ถœํ•œ๋‹ค ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉฐ, ๊ทธ ํด๋ž˜์Šค๊ฐ€ ํ‘œํ˜„ํ•˜๋ ค๋Š” ์ถ”์ƒ ๊ฐœ๋…๋งŒ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ํ‘œํ˜„ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ ๋ฉด์—์„œ ์ ‘๊ทผ์ž ๋ฐฉ์‹๋ณด๋‹ค ๊น”๋”ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๊ฐ€ ํ•ด๋‹น ํด๋ž˜์Šค(public ํ•„๋“œ๋กœ ์—ด์–ด๋†“์€)์˜ ๋‚ด๋ถ€ ํ‘œํ˜„์— ๋ฌถ์ด๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ์ด ํด๋ผ์ด์–ธํŠธ ํด๋ž˜์Šค๋„ ํŒจํ‚ค์ง€ ์•ˆ์—์„œ๋งŒ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŒจํ‚ค์ง€ ๋ฐ”๊นฅ ์ฝ”๋“œ์—๋Š” ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

Last updated

Was this helpful?