자바
자바 접근제어자와 getter setter함수
iminu
2022. 7. 4. 15:06
package main;
import main.book.Member;
public class PhoneBookMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 멤버 클래스 생성하면서, 이름과 전화번호
// 저장할 수 잇도록 만들어 주새요/
Member m1 = new Member("Mike", "010-1222-2222");
// 저장한 이름과 전화번호를
// "Name : Mike, Phone : 010-1222-2222"
// 출력해 주세요.
m1.print();
// 이름을, Harry로 변경하려 한다.
// 왜냐하면, 보안 관점애서@@@
// 따라서, 멤버변수들은 보통은, private으로 만들어놓는다)
// 그리고, 함수로 접근을 허용해준다.
m1.setName("Harry");
m1.print();
m1.setPhone("010-7777-2324");
m1.print();
// 두번째 멤버 데이터를 저장하려고 합니다.
// 이번에는 객체를 먼저 생성하고 나서
// 이름과 전번을 저장하도록 코드를 작성해 주세요.
Member m2 = new Member();
m2.setName("Hong");
m2.setPhone("010-1234-5555");
m2.print();
}
}
package main.book;
public class Member {
String name;
String phone;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public Member (String name, String phone) {
this.name = name;
this.phone = phone;
}
public Member() {
// TODO Auto-generated constructor stub
}
public void print() {
System.out.println("Name : " + name + ", Phone : " + phone);
}
}
멤버 변수를 public으로하면 다른 패키지의 클래스에서도 직접 대입이 가능하다.
하지만 보안상 멤버 변수를 public으로 하기 보다는 getter setter함수를 만드는 게 더 낫다.
getter는 멤버변수를 리턴해주고
setter는 파라미터를 멤버변수에 대입해준다.