🤯TIL/JAVA

[연습문제] Getter Setter 메소드의 호출과 정의

Dorothy_YANG 2022. 10. 10. 22:33
728x90
Getter Setter
private 필드를 우회적으로 접근 private 필드를 우회적으로 변경
public 타입 get필드명 () { ;} public [void / return] set필드명() { ;}

 


< Getter > - private 필드를 우회적으로 접근

- 감춰진 필드 가져오기 : Getter

- private 필드는 외부에서 직접 값을 가져올 수 없어서 외부에서 읽기 위해서는 게터 메소드가 필요함

  • Getter의 특징
    1. getter는 private 필드를 반환하고
    2. 외부 접근 가능하도록 public 선언되어야 함
    3. get어쩌고로 메소드 만들어져야 함
public class PersonTest {
	public static void main(String[] args) {
    	// 객체 생성
        Person park = new Person("도로시", "010-1234-5678");
        
        /* 1. 게터를 호출하여 필드값을 얻으시오. */
        System.out.printf("이름 : %s\n", park.getName());
        System.out.printf("연락처 : %s\n", park.getPhoneNumber());
    }
}

class Person {
	// 필드
    private String name;
    private String phoneNumber;
    
    // 생성자
    public Person(String n, String p) {
    	name = n;
        phoneNumber = p;
    }
    
    /* 2. 게터를 추가하시오. */
    public String getName() {
    	return name;
    }
    
    public String getPhoneNumber() {
    	return phoneNumber;
    }

 


< Setter > - private 필드를 우회적으로 변경

- 숨겨진 필드 가져오기 : Setter

- private 필드는 외부에서 직접 값을 변경할 수 없어서 이를 해결하기 위해서 세터 메소드가 필요함

  • Setter의 특징
    1. 외부 접근 가능하도록 public 선언되어야 함
    2. 외부에서 값을 입력받아야 하므로 파라미터 존재, 필드에 대입하는 코드 필요
    3. set어쩌고로 메소드 만들어져야 함
public class LockTest {
	public static void main(String[] args) {
    // 객체 생성
    Lock lock = new Lock("123!@#");
    
    // 객체 비밀번호 변경
    lock.setPassword("654#@!");
    
    // 객체 정보 출력
    System.out.println(lock.toString());
    }
}

class Lock {
	// 필드
    private String password;
    
    // 생성자
    public Lock(String p) {
    	password = p;
    }
    
    // 메소드
    public String toString() {
    	return String.format("Lock { password : %s }", password);
    }
    
    /* 1. 비밀번호 변경을 위해, 세터 메소드를 추가하시오. */
    public void setPassword(String pw) {
    	password = pw;
    }
}

 


 

728x90