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