Page 21 -
P. 21

배열 항목들의 순서를          int N = a.length;                                           1
                           거꾸로 재배치           for (int i = 0; i < N/2; i+ +)
                                             {                                                           기초 개념
                                                 double temp = a[i];
                                                 a[i] = a[N-i-1];
                                                 a[N-i-1] = temp;
                                             }
                          행렬과 행렬의 곱          int N = a.length;
                            (정방 행렬)          double[][] c = new double[N][N]; for (int i = 0; i < N; i+ +)
                                                 for (int j = 0; j < N; j+ +)
                                                 { |/ i 행과 j 열에 대한 내적 계산
                                                     for (int k = 0; k < N; k+ +)
                                                         c[i][j] += a[i][k]*b[k][j];
                                             }



                     static 메서드  이 책의 자바 코드들은 데이터 타입 정의(1.2절에서 설명된다) 이거나 정적 메서드
                     라이브러리(이 절에서 설명된다) 이거나 둘 중 하나이다. 정적 메서드는 수학의 함수와 역할이 비슷
                     하기 때문에 여러 다른 프로그래밍 언어들에서는 함수라고 불린다. 각 정적 메서드는 실행될 명령문
                     들의 나열로 이루어진다. 이 명령문들은 정적 메서드가 호출되었을 때 하나씩 순서대로 실행된다.
                     static 한정자를 통해 인스턴스에 종속된 메서드(1.2절에서 설명된다)가 아닌 정적 메서드임을 표시
                     한다. 이 책에서는 정적 메서드와 인스턴스 메서드 양쪽 모두에 공통적인 속성을 설명할 때는 메서드
                     라는 용어를 사용한다.

                     static 메서드의 정의  메서드는 일련의 명령문으로 된 어떤 연산 작업을 하나로 감싼다. 메서드는 인
                     수(어떤 데이터 타입을 가진 값)를 받고 리턴할 결괏값을 그 인수를 이용해 계산하거나 부가 효과(값
                     을 화면에 출력한다든지)를 일으킨다. 이때 리턴 값의 데이터 타입은 인수의 데이터 타입에 따라 달
                     라질 수 있다. BinarySearch에서 보인 rank() 메서드는 이 책에서의 첫 번째 정적 메서드 예이다.

                                                               정적 메서드는 메서드 시그니처(signature)와
                시그니처          리턴 타입  메서드 이름 인수 타입   인수 변수
                                                               바디로 구성된다. 메서드 시그니처는 외부에
                       public static double sqrt ( double c )
                                                               서 바라보는 함수의 특징을 지정하는 것으로
                       {                    생성
                                                               public static 키워드 뒤에 리턴 타입, 메서
                          if (c < 0) return Double.NaN;
                          double err = 1e-15;                  드 이름 그리고 데이터 타입이 표시된 인수
                지역 변수
                          double t = c;                        목록이 따른다. 메서드 바디는 하나의 명령문
                          while (Math.abs(t - c/t) > err * t)
               메서드 바디                                          블록으로서 중괄호로 둘러싸인 명령문들이
                             t = (c/t + t) / 2.0;
                          return t;                            다. 정적 메서드의 예는 다음 페이지에서 보
                       }
                                리턴문         다른 메서드의 호출         여진다.
                                           그림 1-4 static 메서드의 구성
                                                               static 메서드의 호출  static 메서드의 이름
                     뒤에 괄호를 열고 쉼표로 구분된 인수들을 나열하고 괄호를 닫으면 static 메서드를 호출하게 된다.




                                                                                              033
   16   17   18   19   20   21   22   23   24   25   26