[Java] 배열(Array), 메서드(Method)
배열(Array)
- 배열 변수를 선언하고, 배열을 생성한 후, 선언한 변수에 배열 참조값을 보관하여 사용한다.
new int[5]
등으로 배열을 생성할 때 내부 값이 자동으로 초기화된다.숫자면 0, boolean이면 false, String이면 null로 초기화된다.
1 2 3
int[] students = new int[5]; //배열을 생성 int[] students = x001; //new int[5]의 결과로 x001(예시)이라는 참조값 반환 students = x001; //최종 결과
참조값을 확인하려면 배열의 변수를 출력한다.
1
System.out.println(students);
배열의 내용을 실제로 보려면 다음과 같은 방법을 쓸 수 있다.
1
System.out.println(Arrays.toString(array));
배열을 생성하고 초기화 할 때 값을 넣을 수도 있다.
1 2 3
int[] students = new int[]{90, 80, 70, 60, 50}; //배열의 크기는 넣지 않는다. int[] students = {90, 80, 70, 60, 50}; //이렇게도 가능. 이 경우에 두 줄에 걸쳐 쓸 수는 없다.
2차원 배열
1 2 3 4 5 6 7 8 9
int[][] arr = new int[][]{ {1, 2, 3}, {4, 5, 6} }; //행2, 열3 int[][] arr = { {1, 2, 3}, {4, 5, 6} };
향상된 for문 (Enhanced For Loop)
- for-each문이라고도 함
- 실무에서 굉장히 많이 쓴다.
- 단축키
iter
1
2
3
4
5
6
7
8
9
10
int[] numbers = {1, 2, 3, 4, 5};
for (int i = 0; i < numbers.length; i++) { // 일반 for문
int number = numbers[i];
System.out.println(number);
}
for (int number : numbers) { // 향상된 for문
System.out.println(number);
}
- 당연히 증가하는 인덱스 값이 필요한 경우에는 쓸 수 없다.
메서드(Method)
- 함수와 비슷하다.
- 선언
- 메서드 이름, 반환 타입, 파라미터 목록을 포함해서 선언한다.
public static int add(int a, int b)
public
: 다른 클래스에서 호출할 수 있는 메서드static
: 객체를 생성하지 않고 호출 가능한 정적 메서드
- 메서드 이름, 반환 타입, 파라미터 목록을 포함해서 선언한다.
- 용어
- 인수(Argument): 호출할 때 넘기는 값(메서드 내부로 들어가는 값)
- 매개변수(Parameter): 메서드를 정의할 때 선언한 변수
String str
,int age
등
- 정의
- 제어자(Modifier) -
public
,static
- 반환 타입(Return Type)
- 메서드 이름(Method Name)
- 매개변수(Parameter)
- 메서드 본문(Methid Body)
- 제어자(Modifier) -
- 반환
- 반환 타입이 void인 경우
return
생략 가능 - 반환 타입이 있으면 그 타입에 맞게 값을 반환해야 한다.
- 반환 타입이 void인 경우
- 호출과 값 전달
- JAVA는 항상 변수의 값을 복사해서 대입한다.
메서드와 형변환
메서드를 호출하는데 인자와 매개변수의 타입이 안맞는 경우
- 명시적 형변환을 한다.
printNumber((int) number);
- 자동으로 형변환 된다.
int
→long
→double
인 경우
메서드 오버로딩
- 오버로딩(Overloading): 이름이 같고 매개변수가 다른 메서드를 여러개 정의하는 것
- 이름이 같아도 매개변수의 타입이나 순서, 개수가 다르면 오버로딩을 할 수 있다.
- 반환 타입만 다른 것은 안된다.
- 메서드 시그니처(method signature): 자바에서 메서드를 구분할 수 있는 고유한 식별자나 서명으로, 메서드의 이름과 매개변수 타입으로 구성되어 있다.
같은 변수 한 번에 바꾸는 단축키: shift + F6
메서드 쓰면 좋은 점들
- 코드 재사용, 가독성, 모듈성, 확장성 향상
- 유지관리, 테스트, 디버깅 용이
- 추상화: 메서드를 사용하는 사람을 정확하고 복잡한 구현은 몰라도 된다.
Reference - 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
This post is licensed under CC BY 4.0 by the author.