Setter와 Getter에 대해서 알아보려고한다.
간단히 말해보자면 Setter 메소드는 값을 변경해주는 것, Getter는 리턴, 반환해주는 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | //이름, 주소, 나이 데이터를 가지는 사람 클래스가 있다. public class Person { String name; String adress; int age; // 매개변수로 들어온 값으로 이름을 변경하는 메소드 public void setName(String name1) { name = name1; } // 매개변수로 들어온 값으로 나이를 변경하는 메소드 public void setAge(int age1) { age = age1; } //이름, 나이, 주소 정보를 모두 출력하는 메소드 public void printPersonInfo() { System.out.println("이름 : " + name ); System.out.println("나이 : " + age ); System.out.println("주소 : " + adress ); } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", adress='" + adress + '\'' + ", age=" + age + '}'; } } | cs |
Person 클래스에 이름(name), 주소(adress), 나이(age)를 자료형에 맞게 변수를 만들어주었다.
이후 setName처럼 set ~~ 가 바로 setter (세터)라고 불린다.
setName뒤에 있는 String name1은 매개 변수이다.
setName의 메소드안에 있는 name = name1;로 인해 Person 클래스 변수 name의 값이 변경된다는 뜻이다.
하지만 메소드가 많아진다면 이름을 계속해서 바꾸어주어야하고, 무슨 메소드에서 원하는 값을 바꾸어주는지 헷갈릴 수 있다.
이해를 위해 이렇게 썼지만, 보편적으로 name = name1; 이아닌 this.name = name으로 쓰게 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | //이름, 주소, 나이 데이터를 가지는 사람 클래스가 있다. public class Person { String name; String adress; int age; // 매개변수로 들어온 값으로 이름을 변경하는 메소드 public void setName(String name) { this.name = name; } // 매개변수로 들어온 값으로 나이를 변경하는 메소드 public void setAge(int age) { this.age = age; } //이름, 나이, 주소 정보를 모두 출력하는 메소드 public void printPersonInfo() { System.out.println("이름 : " + name ); System.out.println("나이 : " + age ); System.out.println("주소 : " + adress ); } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", adress='" + adress + '\'' + ", age=" + age + '}'; } } | cs |
위와같이 this.name = name;으로 사용해주어야 한다.
이때 this.name은 클래스에서 선언된 변수 name이고,
= 뒤에 있는 name은 메소드의 매개변수 name이라는 점이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class PersonTest { public static void main(String[] args) { Person p1 = new Person(); //p1의 이름, 나이 값이 변경 p1.name = "박주홍"; p1.age = 28; //p1 객체의 모든 정보 출력 System.out.println("이름 : " + p1.name); System.out.println("나이 : " + p1.age); System.out.println("주소 : " + p1.adress); System.out.println(); //Person 클래스에 대한 객체 p2생성 Person p2 = new Person(); //p2 객체의 이름, 나이를 변경. p2.setName("김길동"); p2.setAge(22); //p2 객체의 모든 정보 출력. p2.printPersonInfo(); System.out.println(p2.toString()); } } | cs |
main 메소드에서 출력시켜줄 수 있다.
이곳에서 Person 클래스에 있는 p1 객체를 생성해주면 Person클래스를 끄집어내서 사용할 수 있다.
주석 처리된 것과 같이 객체의 모든 정보를 출력하려고한다면 상당한 노가다 작업 일것이다.
이때 방법은 Person클래스에 있는 printPersonInfo( ) 와 같이 메소드를 정의해주는 방법도 있지만,
100개가 넘는 변수를 지정해주어야 한다면 끔찍할 것이다.
이때 편하게 사용되는 것이 바로 toString( )이다.
toString( )은 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드이다.
'✨ Java > 클래스 (Class)' 카테고리의 다른 글
자바(JAVA) - String 클래스 (0) | 2023.02.15 |
---|---|
자바(JAVA) - 클래스 (Class) StudentManage 학생 관리 <프로젝트> (0) | 2023.02.10 |
자바(JAVA) - 클래스 (Class) MemberService <문제> (0) | 2023.02.09 |
자바(JAVA) - 클래스 (Class) - 1 (0) | 2023.02.07 |
댓글