Post

[Java] 배열(Array), 메서드(Method)

java

배열(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)
  • 반환
    • 반환 타입이 void인 경우 return 생략 가능
    • 반환 타입이 있으면 그 타입에 맞게 값을 반환해야 한다.
  • 호출과 값 전달
    • JAVA는 항상 변수의 값을 복사해서 대입한다.

메서드와 형변환

메서드를 호출하는데 인자와 매개변수의 타입이 안맞는 경우

  • 명시적 형변환을 한다. printNumber((int) number);
  • 자동으로 형변환 된다. intlongdouble인 경우

메서드 오버로딩

  • 오버로딩(Overloading): 이름이 같고 매개변수가 다른 메서드를 여러개 정의하는 것
  • 이름이 같아도 매개변수의 타입이나 순서, 개수가 다르면 오버로딩을 할 수 있다.
  • 반환 타입만 다른 것은 안된다.
  • 메서드 시그니처(method signature): 자바에서 메서드를 구분할 수 있는 고유한 식별자나 서명으로, 메서드의 이름과 매개변수 타입으로 구성되어 있다.

같은 변수 한 번에 바꾸는 단축키: shift + F6

메서드 쓰면 좋은 점들

  • 코드 재사용, 가독성, 모듈성, 확장성 향상
  • 유지관리, 테스트, 디버깅 용이
  • 추상화: 메서드를 사용하는 사람을 정확하고 복잡한 구현은 몰라도 된다.



Reference - 김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

This post is licensed under CC BY 4.0 by the author.