[java] Java 메소드 순서 규칙이 있습니까? [닫은]

코스 과정으로 제출할 패키지의 일부인 큰 클래스 (40 정도의 메소드)가 있습니다. 현재 유틸리티 공공 / 개인 등의 측면 에서이 방법이 상당히 혼란스럽고 합리적인 방법으로 주문하고 싶습니다. 이 작업을 수행하는 표준 방법이 있습니까? 예를 들어 일반적으로 필드는 메소드 앞에 나열되고 생성자는 다른 메소드 앞에 나열되며 getter / setter는 마지막입니다. 나머지 방법은 어떻습니까?



답변

일부 규칙은 모든 공용 메소드를 먼저 나열한 다음 모든 개인 메소드를 나열합니다. 즉, 인터페이스가없는 경우에도 의미가 무엇인지 알더라도 API를 구현에서 쉽게 분리 할 수 ​​있습니다.

또 다른 아이디어는 관련 방법을 함께 그룹화하는 것입니다. 이렇게하면 기존 대형 클래스를 여러 개의 더 작고 대상이 지정된 여러 클래스로 분할 할 수있는 이음새를 쉽게 찾을 수 있습니다.


답변

  1. 클래스 (정적) 변수 : 먼저 공개 클래스 변수, 보호 된 변수 및 개인 변수.

  2. 인스턴스 변수 : 먼저 공개, 보호 및 비공개

  3. 생성자

  4. 방법 : 이러한 방법은 범위 나 접근성보다는 기능별로 그룹화해야합니다. 예를 들어 프라이빗 클래스 메서드는 두 퍼블릭 인스턴스 메서드 사이에있을 수 있습니다. 목표는 코드를 쉽게 읽고 이해하는 것입니다.

출처 : http://www.oracle.com/technetwork/java/codeconventions-141855.html


답변

«코드 규칙»에 대한보다 정확한 링크 : «클래스 및 인터페이스 선언»


답변

보편적으로 인정되는 표준이 있는지는 확실하지 않지만 제 자신의 선호는 다음과 같습니다.

  • 먼저 생성자
  • 정적 메소드 다음, 항상 메인 메소드가있는 경우 항상 다른 정적 메소드 앞에
  • 다음은 일반적으로 메소드의 중요성 순서에 따라 정적 메소드가 아닌 메소드를 호출합니다. 이것은 다른 클래스 메소드를 호출하는 퍼블릭 메소드가 맨 위에 표시되고 다른 메소드를 호출하지 않는 개인 메소드는 일반적으로 맨 아래로 표시됨을 의미합니다.
  • 표준 방법 좋아 toString, equals하고 hashcode다음
  • 게터와 세터는 수업 하단에 특별한 장소가 있습니다.

답변

하나의 클래스에서 40 개의 메소드는 약간 많다.

기능 중 일부를 다른 적절한 클래스로 옮기는 것이 합리적입니까? 그렇다면 이해하기가 훨씬 쉽습니다.

수가 적을수록 자연스럽게 읽는 순서대로 나열하는 것이 훨씬 쉽습니다. 빈번한 패러다임 중 하나를 목록 것들입니다 전에 또는 후에 당신은 당신이 그들을 필요로하는 순서를해야합니다.

이것은 일반적 main()으로 상단 또는 하단에 있음을 의미합니다 .


답변

내 “컨벤션”: 인스턴스 앞에 정적, 개인 앞에 공개, 메서드 앞에 생성자, 맨 아래에 기본 메서드 (있는 경우).


답변

또한 이클립스는 어떤 이유로 든 클래스 멤버를 혼합하면 클래스 멤버를 정렬 할 수 있습니다.

수업 파일을 열고 주 메뉴에서 “소스”로 이동하여 “회원 정렬”을 선택하십시오.

이클립스에서 메소드 정렬하기 :