CodeGym /Java Blog /๋ฌด์ž‘์œ„์˜ /Java์˜ ์ ‘๊ทผ์ž์™€ ๋ฎคํ…Œ์ดํ„ฐ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

Java์˜ ์ ‘๊ทผ์ž์™€ ๋ฎคํ…Œ์ดํ„ฐ

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์ด ๊ฐœ๋…์„ ์‚ดํŽด๋ณด๊ธฐ ์ „์— Java์˜ ํด๋ž˜์Šค ๋ฐ ์บก์Šํ™” ์— ๋Œ€ํ•ด ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค .

์ž๋ฐ” ์บก์Šํ™”

์บก์Šํ™”๋Š” ์ด๋ฆ„์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ๋‹จ์ผ ๋‹จ์œ„๋กœ ๋ฌถ๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—์„œ ํด๋ž˜์Šค ์˜ ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋Š” ๋น„๊ณต๊ฐœ๋กœ ๋งŒ๋“ค์–ด ์ง์ ‘ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์บก์Šํ™”๋œ ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋Š” ์ ์ ˆํ•˜๊ฒŒ ์ •์˜๋œ ๋ฐฉ๋ฒ• ์—†์ด๋Š” ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด Java์—์„œ accessor ๋ฐ mutator ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

Java์˜ ์ ‘๊ทผ์ž์™€ ๋ฎคํ…Œ์ดํ„ฐ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ ‘๊ทผ์ž

์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„ ์€ ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ž˜์Šค์˜ ๊ฐœ์ธ ์ •๋ณด์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” " ์ ‘๊ทผ " ์ด๋ผ๋Š” ๋‹จ์–ด๋กœ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค . โ€œ get โ€ ๋ฉ”์„œ๋“œ ๋˜๋Š” โ€œ getters โ€ ์— ๋Œ€ํ•ด ๋“ค์–ด๋ณธ ์ ์ด ์žˆ๋‹ค๋ฉด ์ ‘๊ทผ์ž์™€ ๊ฐ™์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค. getter๋Š” ํด๋ž˜์Šค ๋ฒ”์œ„ ์™ธ๋ถ€์—์„œ ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ์ „์šฉ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

ํ†ต์‚ฌ๋ก 

Java ์ ‘๊ทผ์ž์— ๋Œ€ํ•ด " get " ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค . ๋ณ€์ˆ˜ โ€œ name โ€์— ์•ก์„ธ์Šคํ•˜๋ ค๋ฉด ๋‹ค์Œ getter getName() ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ ‘๊ทผ์ž ๋ฉ”์„œ๋“œ์˜ ์˜ˆ๋Š” ๋‹ค์Œ์„ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค.

public class Student {

	private String name;
	
	public String getName() {
		return name;
	}
}
๊ฐ getter๋Š” ๋ฉ”์„œ๋“œ ์„œ๋ช…์˜ ๋ณ€์ˆ˜ ์ด๋ฆ„ ์•ž์— " get " ํ‚ค์›Œ๋“œ๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ฐ˜ํ™˜ ์œ ํ˜•์€ ๋ฐ˜ํ™˜ํ•  ๋ณ€์ˆ˜์˜ ์œ ํ˜•๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜ " name "์€ " String " ์œ ํ˜•์ด๋ฏ€๋กœ getter/accessor ๋ฉ”์„œ๋“œ๋„ " String "์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋Œ์—ฐ๋ณ€์ด

Java์˜ ๋ฎคํ…Œ์ดํ„ฐ ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž ๊ทธ๋Œ€๋กœ ์ˆ˜์ •์„ ์˜๋ฏธํ•˜๋Š” "mutate"๋ผ๋Š” ๋‹จ์–ด๋กœ ๊ตฌ๋™๋ฉ๋‹ˆ๋‹ค. ๋ฎคํ…Œ์ดํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํด๋ž˜์Šค ๊ฐ์ฒด์˜ ํ”„๋ผ์ด๋น— ๋ณ€์ˆ˜ ๊ฐ’์„ ์„ค์ •/๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ปจํ…์ŠคํŠธ์—์„œ " set " ๋ฉ”์„œ๋“œ ๋˜๋Š” " setters "๋Š” ๋ฎคํ…Œ์ดํ„ฐ๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์„ธํ„ฐ๋Š” ํ”„๋ผ์ด๋น— ๋ฐ์ดํ„ฐ ๋ฉค๋ฒ„๋ฅผ ์ง์ ‘ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์บก์Šํ™”๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ setter ๋ฉ”์†Œ๋“œ/๋ฎคํ…Œ์ดํ„ฐ๋Š” ํด๋ž˜์Šค ๋ฒ”์œ„ ์™ธ๋ถ€์˜ ๋ณ€์ˆ˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ†ต์‚ฌ๋ก 

๋ฎคํ…Œ์ดํ„ฐ์˜ ๊ฒฝ์šฐ " set " ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค . ๊ฐ setter๋Š” "set" ํ‚ค์›Œ๋“œ์™€ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๋ณ€์ˆ˜ ์ด๋ฆ„์œผ๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” String ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๋Š” setter setName()์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

public class Student {

	private String name;

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

์ ‘๊ทผ์ž์™€ ๋ฎคํ…Œ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

ํด๋ž˜์Šค์˜ ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋ณดํ˜ธํ•˜๋ ค๋ฉด ๊ฒŒํ„ฐ์™€ ์„ธํ„ฐ ๋˜๋Š” ์ ‘๊ทผ์ž์™€ ๋ฎคํ…Œ์ดํ„ฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ณด๋Š” ์ด๋Ÿฌํ•œ ํ‘œ์ค€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ถˆ๋ฒ•์ ์ธ ์‚ฌ์šฉ์œผ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฎคํ…Œ์ดํ„ฐ์˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์•ก์„ธ์„œ ๋ฐ ๋ฎคํ…Œ์ดํ„ฐ ์˜ˆ

์•„๋ž˜์˜ ํ•™์ƒ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ accessor ๋ฐ mutator ๋ฉ”์„œ๋“œ์˜ ์˜ˆ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ


import java.util.Arrays;

public class Student {

	private String name;
	private Integer ID;
	private String DOB;
	private double GPA;
	private String[] courses;

	public String getName() {
		return name;
	}

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

	public Integer getID() {
		return ID;
	}

	public void setID(Integer iD) {
		this.ID = iD;
	}

	public String getDOB() {
		return DOB;
	}

	public void setDOB(String dOB) {
		this.DOB = dOB;
	}

	public double getGPA() {
		return GPA;
	}

	public void setGPA(double gPA) {
		this.GPA = gPA;
	}

	public String[] getCourses() {
		return courses;
	}

	public void setCourses(String[] courses) {
		this.courses = courses;
	}

	public static void main(String[] args) {

		Student student1 = new Student();

		System.out.println("Student Bio [ Before using Accessors & Mutators ]");

		// calling accessor methods
		System.out.print("Name: " + student1.getName());
		System.out.print("\tID: " + student1.getID());
		System.out.print("\tGPA: " + student1.getGPA());
		System.out.print("\tDOB: " + student1.getDOB());
		System.out.println("\tCourses: " +  Arrays.toString(student1.getCourses()));

		// calling mutator methods
		student1.setName("Alex Coy");
		student1.setID(3115);
		student1.setGPA(2.79);
		student1.setDOB("08/08/1998");
		String[] courses = { "Object Oriented Programming", "Cryptography", "Photography", "Network Security" };
		student1.setCourses(courses);

		System.out.println("\nStudent Bio [ After using Mutators & Accessors ]");

		// calling accessor methods
		System.out.print("Name: " + student1.getName());
		System.out.print("\tID: " + student1.getID());
		System.out.print("\tGPA: " + student1.getGPA());
		System.out.print("\tDOB: " + student1.getDOB());
		System.out.println("\tCourses: " + Arrays.toString(student1.getCourses()));
	}
}

์‚ฐ์ถœ

ํ•™์ƒ ์•ฝ๋ ฅ [ ์ ‘์†์ž ๋ฐ ์ ‘์†์ž ์‚ฌ์šฉ ์ „ ] ์ด๋ฆ„: null ID: null GPA: 0.0 ์ƒ๋…„์›”์ผ: null ๊ณผ์ •: null ํ•™์ƒ ์•ฝ๋ ฅ [ ๋Œ์—ฐ๋ณ€์ด ๋ฐ ์ ‘์†์ž ์‚ฌ์šฉ ํ›„ ] ์ด๋ฆ„: Alex Coy ID: 3115 GPA: 2.79 ์ƒ๋…„์›”์ผ: 08/08/1998 ๊ณผ์ •: [๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์•”ํ˜ธํ™”, ์‚ฌ์ง„, ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ]

๊ฒฐ๋ก 

์ด๊ฒƒ์€ Java์˜ ์ ‘๊ทผ์ž์™€ ๋ฎคํ…Œ์ดํ„ฐ์— ๋Œ€ํ•œ ๋น ๋ฅธ ์†Œ๊ฐœ ๋ฐ ์˜ˆ์˜€์Šต๋‹ˆ๋‹ค. ์ž์‹ ๋งŒ์˜ ์ƒ˜ํ”Œ ์˜ˆ์ œ๋ฅผ ๋งŒ๋“ค๊ณ  ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์ง์ ‘ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์—ฐ์Šต์œผ๋กœ IDE์—์„œ getter ๋ฐ setter๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•Œ์•„๋ณด๊ณ  ์ €ํฌ์—๊ฒŒ ์•Œ๋ ค์ฃผ์„ธ์š”!
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION