본문 바로가기
그 외 프로그래밍 언어/Java

자바, Getter와 Setter 메소드

by Dreaming Coder 2021. 12. 13. 22:41

 


 

지난 포스트에서 사용했던 코드와 이어지는 내용입니다.

이번에는 필드(데이터)에 있는 변수들의 이름 앞에 get이나 set이라는 단어를 붙여서 만드는 메소드에 대해서 알아보겠습니다.

 

 

 

지난 포스트

 

자바, 생성자 (constructor) 빠르게 만드는 법

지난 포스트에서는 여러 가지를 다뤘던 것 같은데, 그중에서 생성자라는 것이 있었습니다. 이번에는 생성자를 빠르게 만드는 방법을 알아보겠습니다. 지난 포스트 https://gogogameboy.tistory.com/entry/j

gogogameboy.tistory.com

 

 

 

Getters and Setters...

 

package 객체배열;

public class Student {

	// 설계도면
	// OOP 특징 4가지 - 캡슐화(정보은닉), 상속, 추상화, 다형성
	// 1. Field(데이터, 속성)
	// 이름
	private String name;
	// 학번
	private int number;
	// 자바점수
	private int javaScore;

	// 2. Method(기능, 행위, 로직)
	// - 생성자(constructor)
	// 생성자의 특징
	// (1) 생성자도 메소드이다.
	// (2) 클래스 이름과 메소드 이름이 동일하다. (대소문자까지 똑같아야 한다.)
	// (3) 리턴타입을 지정하지 않는다. -> void도 쓰지 않는다.
	// (4) 매개변수를 아무것도 받지않는 default 생성자는 생략 가능하다.
	//     그러나, 매개변수를 받는 새로운 생성자를 추가하면 default 생성자는 덮어씌워진다.
	public Student(String name, int number, int javaScore) {
		this.name = name;
		this.number = number;
		this.javaScore = javaScore;
	}
	
	// 이름을 돌려주는 getName
	public String getName() {
		return name;
	}
	// 학번을 돌려주는 getNumber
	public int getNumber() {
		return number;
	}
	// 자바점수를 돌려주는 getJavaScore
	public int getJavaScore() {
		return javaScore;
	}
	// 자바점수를 받아와서 새로운 점수를 다시 넣어주는 setJavaScore
	public void setJavaScore(int javaScore) {
		this.javaScore = javaScore;
	}
	
}

 

지난 포스트의 코드에 Getter 메소드와 Setter 메소드를 추가시켜놓은 코드입니다.

 

name과 number와 javaScore라는 변수명 앞에 get을 붙여서 만든 getName, getNumber, getJavaScore라는 3개의 메소드와 set을 붙여서 만든 setJavaScore라는 메소드가 보이실 겁니다.

주석으로 Getter 메소드들에는 '돌려준다'고 쓰여있고, Setter 메소드에는 '다시 넣어준다'고 쓰여있는데 '이게 무슨 말인가..' 싶을 겁니다.

 

 

 

 

자바, 저금통 만들기 (feat. this와 private, 그리고 생성자)

계속해서 객체지향 프로그래밍을 해보겠습니다. 그러면서 그동안 무슨 뜻인지도 몰랐지만 일단 몇 번 써봤었던 private라는 접근 제한자에 대해서 알아보겠습니다. 덤으로 this라는 키워드와 '생

gogogameboy.tistory.com

위의 포스트에서 접근 제한자 중에 private에 대해서 배웠습니다.

외부에서 데이터에 접근하지 못하게 막고, 우리가 만들어놓은 메소드를 통해서만 데이터에 접근하도록 유도하는 것이었죠.

 

Getter 메소드는 돌려주는 것이라고 위에서 코드의 주석에 써놨습니다.

여기서 돌려준다는 말은 무슨 뜻이냐면, 해당하는 메소드를 사용하게 되면 필드에 있는 데이터를 결과 값으로 줄 것이라는 의미입니다.

메소드로 필드 값을 가공 후, 외부로 전달한다는 것이죠.

private 필드는 외부에서 직접 값을 가져올 수 없습니다. 이를 외부에서 읽기 위해서는 Getter 메소드가 필요합니다.

Getter 메소드는 말 그대로 돌려주는 것이기 때문에 메소드의 이름 앞에 리턴 타입이 붙고, 메소드 내에 return도 들어갑니다.

 

 

 

 

자바, 리턴 타입이 없는 메소드 (feat. void)

계속해서 메소드에 대해서 공부해보겠습니다. 이번에는 지난 포스트에서 공부한 '결과 값을 돌려주는 메소드'와는 달리, 리턴 타입이 없는, 아무런 결과 값도 돌려주지 않는 메소드를 만들어보

gogogameboy.tistory.com

private 필드는 메소드를 통해서만 접근이 가능하기 때문에, 역시 외부에서 직접 값을 변경할 수 없습니다.
private 필드값을 변경하기 위해서 Setter 메소드가 필요합니다.

Setter 메소드가 Getter 메소드와 다른 점은, Setter 메소드에는 리턴 타입이 없습니다. 그래서 void를 붙여줍니다.

그리고 매개변수가 있습니다.

 

 

 

 

Getter 메소드와 Setter 메소드 빠르게 만드는 법

 

지난 포스트에서 배운 생성자 빠르게 만드는 방법처럼 Getter와 Setter 메소드도 빠르게 만드는 방법이 있습니다.

 

 

 

단축키 지난 포스트와 똑같습니다.

[shift + alt + s]를 누르고 이번에는 Generate Getters and Setters... 를 클릭합니다.

 

 

 

그러면 위와 같은 창이 뜨게 되고..

 

 

 

생성할 메소드들을 선택해준 다음에 Generate를 클릭합니다.

 

 

 

그러면 이렇게 빠르게 완성할 수 있습니다.

 

 

 


이 글이 도움이 됐다면 하단의 공감 버튼을 꾹 눌러서
빨간 하트로 만들어주세요.
지인에게 보여주고 싶은 글이었다면
공감 버튼 옆을 클릭해서 SNS 공유해주세요.
댓글은 블로그 운영에 큰 힘이 됩니다.

 


 


댓글