풀스택 과정 day06_Java

정유섭·2022년 3월 11일
0

2022.03.11.(금)

2차원 배열

메서드


1. 배열

1-1. 2차원 배열

- 2차원 배열의 선언, 크기 할당, 값의 대입에 대한 일괄처리 
	-> 2차원 배열의 경우 블록 괄호 "{}"를 2중으로 겹쳐서 
       2차원 배열을 표현한다.

	-> 행과 열의 구분에는 콤마(,)가 사용된다.

	-> 컴파일러가 블록 괄호 "{}"의 요소를 파악하면 행, 열의 크기가 산출될 수
       있으므로 배열의 크기 설정을 위한 [][]에는 배열의 크기를 명시하지 않는다.
데이터형[][] 배열이름 = new 데이터형[][] {
	{0행 0열의 값, 0행 1열의 값, ... , 0행 n열의 값},
	{1행 0열의 값, 1행 1열의 값, ... , 1행 n열의 값},
	{...	},
	{n행 0열의 값, n행 1열의 값, ... , n행 n열의 값}
};

1-2. 2차원 배열에 대한 값의 대입 방법

- 행, 열에 대한 인덱스를 통하여 값을 대입한다.
배열이름[행][열] = 값;
- int[][] grade = new int[3][3];
  grade[0][0] = 75;
  grade[0][0] = 82;
  grade[0][0] = 91;
  ...
  grade[2][2] = 90;
- 일괄 지정하는 경우
int[][] grade = new int[][] {
	{75, 82, 91},
	{88, 64, 50},
	{100, 100, 90}
};


< 2차원 배열의 예 >

1-3. 2차원 배열의 길이

- 2차원 배열의 길이는 행에 대한 측면과 열에 대한 측면을 나누어서 생각해야 한다.

- 행의 길이
	-> 1차 배열의 길이는 2차 배열에서 행의 크기로 조회가 된다.
int rows = grade.length;
- 열의 길이
	-> 열의 길이는 각 행에 대하여 개별적으로 조회해야 한다.
int cols = grade[행].length;


< 2차원 배열의 합계와 평균 >


< 간단한 배열 예제 (1), (2) >


< 간단한 배열 예제 (3), (4) >


2. 메서드

2-1. 프로그램의 시작점

- Java 프로그램이 시작되는 시작점을 의미하는 main은 public, static, void, main,
  (String[] args) 라는 키워드로 구성된 하나의 {...} 블록이다.

2-2. 다른 이름의 메서드 만들기

f(x) = x + 1

f : 함수 이름
x : 매개변수
x + 1 : 식

f(1) = 2
f(10) = 11
f(5) = 6    

2-3. 프로그램의 함수 = 메서드

- 특정 기능(=연산)을 그룹화해서 재사용하기 위한 단위 
public static void 메서드이름() {
	... 수행할 연산식 ...
}

2-4. 메서드의 호출

- 정의된 메서드는 다른 메서드를 구성하는 {...} 안에서 다음의 형식으로 사용될 수 있으며,
  이를 '메서드를 호출한다' 고 한다.
메서드이름( );


< 메서드의 호출 >

2-5. 메서드 파라미터

- Java 프로그램의 메서드(=함수)는 자신이 실행되는데에 필요한 조건값을
  메서드 이름 뒤의 괄호 안에서 변수 형태로 선언한다. 이를 메서드 파라미터라고 한다.
public static void 메서드이름(변수형 변수이름) {
	... 수행할 연산식 ...	
}
인자값은 '매개변수', '파라미터' 라고도 한다.**

2-6. 다중 파라미터

- 메서드가 연산을 수행하는데에 두 개 이상의 파라미터가 필요하다면,
  콤마(,)로 구분하여 선언할 수 있다.
public static void 메서드이름( 변수형 변수이름, 변수형 변수이름, 변수형 변수이름 ) {
	... 수행할 연산식 ...
}

2-7. 파라미터를 갖는 메서드의 호출

- 메서드를 정의하면서 파라미터가 명시되어 있다면,
  해당 메서드를 호출하면서 파라미터를 전달해 주어야 한다.
메서드이름( 값1, 값2, 값3 );


< 파라미터를 갖는 메서드의 호출 >

2-8. 메서드의 리턴값

- 메서드가 연산 결과를 자신이 호출된 위치에 반환하는 것을 "리턴" 이라고 하며,
  반환되는 값을 "리턴값" 이라고 한다.

- 메서드 안에서 값을 리턴하기 위해서는 "return" 이라는 키워드가 사용된다.

- 값을 리턴하는 메서드는 선언 시에 "void" 키워드 대신, 리턴하는 값에 대한
  변수형이 명시된다. ( ** void는 리턴값이 없다는 의미! )
public static 리턴형 메서드이름( 변수형 파라미터, ... ) {	// 리턴형 : 리턴하는 데이터의 타입
	return 리턴값;
}		
** 리턴형과 파라미터는 다를 수 있다!


< 리턴값을 갖는 메서드의 호출 >

2-9. 두 개의 함수를 연립하여 사용하기

f1(x) = x + 1
f2(y) = f1(y) + 10
k = f2(5)
-> f1(5) + 10
-> (5 + 1) + 10
-> 16

2-10. 메서드간의 상호 호출

- Java의 메서드 역시 서로 호출하는 것이 가능하다. 호출된 메서드가 값을
  리턴하는 경우, 리턴받은 값을 다른 연산에 사용할 수 있다.


< 메서드 간 상호 호출 >


3. 메서드 연습 문제

문제 1. 리턴값과 인자가 없는 메서드


< 'public', 'static', 'void'로 이루어진 인자가 없는 메서드 hi( ), say( ) 생성 >

문제 2. 리턴값은 없고, 인자가 있는 메서드


< 'public', 'static', 'void' 로 이루어진 인자가 있는 메서드 sum( int x, int y ) 생성 >

문제 3. 리턴값이 있고, 인자가 없는 메서드


< 'public', 'static', 'String' 으로 이루어진 인자가 없는 메서드 prod( ) 생성 >

문제 4. 리턴값과 인자가 모두 있는 메서드


< 'public', 'static', 'boolean' 으로 이루어진 인자가 있는 메서드 age( int x ) 생성 >
< 'public', 'static', 'int' 로 이루어진 인자가 있는 메서드 plusM( int a, int b ) 생성 >

profile
도비는 자유에요!😝

0개의 댓글