본문 바로가기

BackEnd/Java

Getter, Setter

정보를 은닉할 때 private이라는 접근제한자에 의해 아무나 접근할 수 없는데
getter와 setter 메서드를 만들면 생성된 내용에 대해서만 접근할 수 있다

 

class Student {
	String name;
	private int score; // Student 클래스 내부에서만 접근 가능한 변수
	
	public int getScore() {
		return score;
	}
	public void setScore(int s) {
		score = s;
	}
}

 

Student라는 클래스를 생성하고 내부에 getScore(), setScore() 메서드를 만들었다

 

public static void main(String[] args) {
	Student student = new Student();
	
	student.name = "홍길동";
	// student.score = 99; // 오류 발생!
	student.setScore(99);
	
	System.out.println("이름: " + student.name);
	System.out.println("점수: " + student.getScore());
}

[ 출력 결과 ]

이름: 홍길동
점수: 99

 

main 메서드에서 Student 클래스 생성자로 선언하였다

 

Student에 대한 name 변수는 누구나 접근이 가능해서 어디서든 변수를 바꿔줄 수 있지만

Student에 대한 score 변수는 private라는 접근제한자 때문에 일반적으로 변수를 수정하거나 초기화해줄 수 없어

Student 클래스 내부에 생성한 getScore() 와 setScore() 메서드를 이용해 접근하니 변수 내용을 바꿔줄 수 있었다

 

마찬가지로 Score 변수의 내용을 가져올 때도 그냥 가져올 수 없으니

getScore() 메서드를 이용해서 출력하니 값이 잘 출력되었다

 

단축키

Alt + Shift + S 누르고 r

 

보통은 쉽게 접근할 수 없는 메서드를 모두 생성하고 단축키를 이용해서

한번에 생성한다

'BackEnd > Java' 카테고리의 다른 글

패키지(Package)와 import  (0) 2020.02.11
오버로딩(Overloading)과 가변인자(비정형인자)  (0) 2020.02.11
메서드 (method)  (0) 2020.02.04
배열 (Array)  (1) 2020.01.23
반복 : break와 continue  (0) 2020.01.22