필드(field)에 대해 자세하게 알아보겠습니다. 필드는 객체의 고유 데이터로 객체의 현재 상태 데이터를 저장하는 곳입니다. 필드 선언은 클래스 중괄호 { } 블록 어디에서든 가능합니다.
생성자 선언과 메서드 선언의 앞이나 뒤, 어떤 곳에서도 필드 선언이 가능합니다. 하지만 생성자와 메서드 중괄호 { } 블록 내부에서는 선언할 수 없습니다. 생성자와 메서드 중괄호 내부에 선언되는 것은 모두 지역 변수가 되기 때문입니다.
필드를 사용하는 것은 필드값을 읽고 변경하는 작업을 말합니다.
클래스 내부의 생성자나 메서드에서 사용할 경우 필드 이름 자체로 읽고 변경할 수 있지만, 클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤에, 필드를 사용해야 합니다.
객체를 이용해서 필드나 메서드를 호출할 때는 리턴값 = 객체이름.메서드(매개변수, ...) 형식이나 리턴값 = 객체이름.필드 형식으로 호출해 주면 됩니다. 객체에 도트(.) 연산자를 붙이고 필드나 메서드를 적어주면 되는데, 도트 연산자는 객체의 필드와 메서드에 접근할 때 사용합니다.
매개변수 이름이 너무 짧으면 코드의 가독성이 좋지 않기에 가능하면 초기화시킬 필드 이름과 동일한 이름을 사용하는 것이 좋습니다. 하지만 이런 경우, 매개변수와 필드의 이름이 동일하기 때문에 (메서드 or 생성자) 내부에서 해당 필드에 접근할 수 없습니다. 그 이유는 동일한 이름의 매개변수가 사용 우선순위가 높기 때문인데, 이 경우를 해결하는 방법은 필드 앞에 this. 을 붙이면 됩니다. this.필드는 this라는 참조 변수로 필드를 사용하는 것과 동일합니다.
일반적으로 객체지향 프로그래밍에서는 객체의 무결성이 깨질 수 있기 때문에 객체의 필드를 외부에서 직접적으로 접근하는 것을 막습니다. 이러한 문제를 해결하기 위해 메서드를 통해서 필드를 변경하는 방법을 사용합니다.
필드는 외부에서 접근할 수 없도록 막지만 메서드는 공개해서 외부에서도 메서드를 통해 필드에 접근할 수 있도록 유도합니다. 메서드가 매개변수의 값을 검증해서 유효한 값만 필드로 저장할 수 있는데 이러한 역할을 하는 메서드가 Setter() 메서드입니다.
반대로 외부에서 객체의 데이터를 읽을 때도 메서드를 사용하는 것이 좋은데, 이런 경우 메서드로 필드값을 가공한 후 외부로 전달하면 되고 이런 역할을 하는 메서드가 바로 Getter() 메서드입니다.
클래스를 선언할 때 가능하면 필드를 private으로 선언해 외부로부터 보호하고, 각 필드에 대한 Setter() 메서드와 Getter() 메서드를 작성해 필드 값을 안전하게 변경하고 사용하는 것이 좋습니다.
Setter() 메서드와 Getter() 메서드를 직접 작성할 수도 있지만 간단하게 불러올 수 도 있습니다.
각 필드마다 적을 Setter() 메서와 Getter() 메서드를 선택해 주면 빠르고 쉽게 작성되는 것을 볼 수 있습니다.
'프로그래밍 언어 > 자바 (Java)' 카테고리의 다른 글
[자바(Java) 공부하기] 17. 지정 예약어 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.17 |
---|---|
[자바(Java) 공부하기] 16. 접근제한자 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.16 |
[자바(Java) 공부하기] 15. 클래스 배열(객체 배열) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.15 |
[자바(Java) 공부하기] 14. 생성자 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.14 |
[자바(Java) 공부하기] 12. 클래스 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |
[자바(Java) 공부하기] 11. 메서드 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.11 |
[자바(Java) 공부하기] 10. 배열 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.10 |
[자바(Java) 공부하기] 9. 반복문 - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.09 |