์ด ๊ฐ๋
์ ์ดํด๋ณด๊ธฐ ์ ์ 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 ๊ณผ์ : [๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ, ์ํธํ, ์ฌ์ง, ๋คํธ์ํฌ ๋ณด์]
GO TO FULL VERSION