[Java] 클래스 멤버는 각자의 위치가 존재한다

 

 

Java 클래스 멤버는 각자의 위치가 존재한다.

우테코 미션에 대해 코드리뷰를 받으면서 이런 리뷰를 듣게 되었다.

클래스 변수의 선언부를 최상단으로 바꾸는 게 어떨까요? 
컨벤션에 맞춰주시면 좋을 거 같아요!

 

클래스 멤버가 각각의 위치를 가지고 있다는 건 알았지만 내가 컨벤션을 잘못 기억하고 있었나보다 싶었다. 때문에 다시 한 번 찾아보고, 기록으로 남겨두고자 한다.

나 외에도 필요한 사람들에게 도움이 되었으면 좋겠다!

 

 

클래스 멤버의 선언 순서

Oracle의 자바 Code Covention 문서를 보면 클래스 멤버는 각자의 선언 위치를 가지고 있음을 알려준다.

  1. Class (static) variables public → protected → default → private 순서
  2. Instance variables public → protected → default → private 순서
  3. Constructors
  4. Methods

이러한 컨벤션을 지켜가며 자바 코드를 조금 더 가독성있는 코드로 바꿔나가자!

 

 


 

메서드 배치는 본인만의 기준 정하기

글을 살펴보면 메서드 부분에 대해선 살짝 애매하게 적혀있는 것을 확인할 수 있다.

 

요약하자면 "기능적인 단위로 가독성 좋게!" 인데, 어떻게 해야 가독성 좋게 메서드를 배치할 수 있을까?

나는 사용 순서대로 배치하는 것이 베스트라고 생각한다.

때문에 이런 순서는 어떨까 생각하며 적용해보고 있다. (어차피 정답은 없다. 보기 좋은대로 쓰자)

 

1. 생성자에서 사용되는 메서드

접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로

 

2. public static 메서드

접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로

 

3. public 메서드

접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로

 

4. getter 메서드

 

 

접근제어자 관련 없이 클래스의 코드 상에서 사용되는 순서대로라는 기준은 위와 같다.

 

getBridgeAroundAt의 코드를 보면 내부적으로

hasLeftBridge() -> isFirstPosition() -> hasRightBridge() 순서대로 사용되고 있다.

 

가독성을 위해 이렇게 사용되는 순서대로 메서드를 정렬하는 것이 가장 베스트이지 않나 싶다.

 

혹시 본인이 사용하는 더 좋은 방법이 있다면 남겨주었으면 좋겠다! 🙌

 

 


 

Reference

Code Conventions for the Java Programming Language: 3. File Organization

728x90