자바에서 set함수, get함수를 왜 사용하는 것일까?

자바는 객체지향 프로그래밍 언어이다. 그 말인 즉슨, 함수를 통해 값을 전달하고 전달받는 방식을 사용한다는 것이다.

그렇기 때문에 서로 간의 관여가 많아 질 수 밖에 없다. 예를 들어 도서관에는 책마다 위치되는 구역이 정해져있다. 그 구역 데이터는 도서관 에서도 특정한 관리자들이 관리할 것이다. 그런데 도서관을 이용하는 학생이 그 위치 데이터를 마음대로 변경했다고 생각해봐라 얼마나 황당한 일인가? 그래서 정보의 은닉이 중요한 것이다. 아무도 모르게 내 마음대로 데이터를 변경하는 것이 아니라 관련 주체를 통해 변경함으로써 결함을 줄일 수 있다.

 

다음은 set함수와 get함수를 사용한 예시이다.

public class AccountTest {
	public static void main(String[] args) {
		Account at = new Account();
		at.setName("Tom");  //at이라는 객체를 통해 Tom이라는 이름을 set함수에 전달하고 있다.
		at.setBalance(10000); // 같은 방식으로 통장 잔고 전달
		System.out.println("이름은 " + at.getName() + " 통장 잔고는 " + at.getBalance() + "입니다. ");
	}
}
class Account{
	private int regNumber;     // 변수들을 private선언 하여 외부의 직접 접근이 불가능하여 정보의 은닉을 높이고 있다.
	private String name;
	private int balance;
	
	public String getName() {return name;} // 받은 이름을 반환한다. (이름 외에 불필요한 정보까지 조회되지 않는다는 장점)
	public void setName(String name) {this.name = name;} //String형의 값을 받으면 객체의 필드값을 받은 값으로 초기화한다
	public int getBalance() {return balance;}
	public void setBalance(int balance) {this.balance=balance;}
}

 

 처음 설명했던 내용과 위 코드에 달린 주석처리 설명으로 충분히 이해가 됐을 것이다.

 

그런데 변수가 많아지면 set함수 get함수가 엄청나게 많아질 것이다. 저렇게 일일이 함수를 선언하는 것이 얼마나 귀찮은 일인가? 이와 관련해서 코딩을 하는 사람이라면 알아야할 편의 기능이 있다.

 

먼저 위의 코드에서 아래와 같이eclipse에서 set함수 get함수 모두 지워보겠다.

 

 

그리고 나서 상단에 Source를 클릭하면

 

 

이런 창이 하나 뜰 것이다. 여기 나와있는 변수중에 set, get함수를 원하는 변수를 선택해서 아래 Generate를 누르면 

 

짜잔~ 한번에 알아서 뚝딱 만들어내는 모습!

넘나 편리한 것~

 

set함수 get함수 참 쉽죠?

 

반응형

'JAVA > 개념' 카테고리의 다른 글

[자바] 다형성  (1) 2021.03.31
[자바] 생성자  (0) 2021.03.30

+ Recent posts