사용자 삽입 이미지
  • 강좌를 시작하며

    이번 강좌는 같은 형의 자료를 한번에 여러개 묶을 수 있는 배열에 대해서 알아보겠습니다. 지난번 강좌의 Class와 배열을 비교해볼까요? 그리고 배열이라는 것을 이용하여 어떤 곳에 사용할 수 있을까요? 이번엔 이런 것들을 배우게 될 것입니다.

    이번 강좌부터는 기본적으로 클래스 구성 방법이나, 자바 언어에 대한 세세한 것들은 줄여 나가겠습니다. 자바란 언어가 궁금하신 분은 이곳의 다른 자바 강좌를 찾아보도록 하시구요.

    참고서적 : Data Structures & Other Objects Using JAVA

  • 배열이란

    배열이란 숫자가 연속으로 죽 늘어선 것을 말합니다. 하지만 문자들도 배열에 집어넣을 수 있죠.

    7

    22

    19

    54

    위와 같은것들을 배열이라고 합니다. 그리고, 이것을 실제로 자바에서 자료를 늘어놓을 때 사용 하려면 index 라는 것이 필요하죠. 저 위의 배열에 index를 넣어보겠습니다.

    7

    22

    19

    54

    [0]

    [1]

    [2]

    [3]

    index는 위의 형태처럼 붙게 됩니다. 맨 처음의 index는 '0'에서부터 시작하죠. 배열에서 중요하지만서도 많이 햇갈리는 것입니다. 주의하세요.

    위에서 들은 예는 연속된 숫자가 겨우 4개에 불과하지만 충분히 여러분들이 원하는 만큼의 길이를 가진 배열을 사용하실수 있습니다. 물론 index는 0부터 시작하게 되구요.

  • 자바에서 배열 사용하기

    자바에서는 배열을 어떻게 선언할까요? 뭐 별거 있나요? 일반 변수 선언하는 것처럼 하시면 됩니다. 하지만 다른점이 있죠. 자바에서 정수형 변수 하나 선언하고 new를 해주시나요? 아니죠. 하지만 배열은 선언을 하고 new를 해주셔야 한답니다. 눈치가 빠른 분이시라면 뭔가 예상하셨을지도 모르겠네요.

    그렇습니다. 자바에서는 배열도 하나의 클래스입니다. 이미 구현이 되어 있는 클래스라는 것이죠. 이제는 본격적으로 배열을 사용해 볼까요?

  • 자바에서 배열 사용하기

    자바에서는 배열을 어떻게 선언할까요? 뭐 별거 있나요? 일반 변수 선언하는 것처럼 하시면 됩니다. 하지만 다른점이 있죠. 자바에서 정수형 변수 하나 선언하고 new를 해주시나요? 아니죠. 하지만 배열은 선언을 하고 new를 해주셔야 한답니다. 눈치가 빠른 분이시라면 뭔가 예상하셨을지도 모르겠네요.

    그렇습니다. 자바에서는 배열도 하나의 클래스입니다. 이미 구현이 되어 있는 클래스라는 것이죠. 이제는 본격적으로 배열을 사용해 볼까요?

    int[] score;      // 선언입니다

    score = new int[4];     // 배열도 클래스니깐 객체 생성을 해주는 것입니다.

    위처럼 선언하시고 생성해주시면 됩니다. 지난번 강좌에서의 클래스 생성방법과 동일하죠? 조금 다른 점이라면 '[4]' 이 부분이랄까요? 클래스에서는 생성자의 형식대로 맞춰서 써줘야 하지만 배열은 [ ] 안에 원하는 만큼의 길이를 넣어주면 되는 겁니다. 위처럼 선언하고 생성을 해주면 이것은 밑의 [그림 1]처럼 도식화 됩니다.

    사용자 삽입 이미지

    [그림 1]

    이제는 저 배열을 score라는 이름으로 사용할 수 있게 되었습니다. 이제 저 텅텅 비어있는 배열에 숫자를 집어넣어볼까요?

    int[] score;

    score = new int[4];

     

    score[0] = 7;

    score[1] = 22;

    score[2] = 19;

    score[3] = 56;

    위처럼 쓰게되면 밑의 [그림 2]처럼 배열에 원하는 숫자들이 차게 됩니다.

    사용자 삽입 이미지

    [그림 2]

    배열 안에 원하는 자료를 집어넣는 데까지는 했습니다. 음.. [그림 2]에 대해서 좀 다른면에서 한번 접근해 볼까요? score라는 변수는 int형이고 길이가 4인 배열을 가리키고 있게 되죠? 그렇다면 score가 아닌 다른 변수로도 이 배열을 관리할 수 있을까요?

    할 수 있습니다. 밑에 예제와 그림으로 설명하겠습니다.

    int[] score;

    int[] exam;

    score = new int[4];

     

    score[0] = 7;

    score[1] = 22;

    score[2] = 19;

    score[3] = 56;

     

    exam = score;

    위 처럼 코드를 작성하면 밑의 [그림 3]처럼 도식화 할 수 있습니다.

    사용자 삽입 이미지

    [그림 3]

    exam으로 저 배열을 다룰 수 있으므로 아래처럼 해도 문제가 없습니다.

    exam[3] = 90;

    위처럼 하면 [그림 4]처럼 되겠죠?

    사용자 삽입 이미지

    [그림 4]

  • Posted by 영웅기삼
    ,