본문 바로가기
국비학원

[국비지원] KH 정보교육원 7일차

by 도전하는 개발자 2022. 4. 1.

Day7

 오늘은 강사님께서 수업 전에 거진 1시간 가까이 연마에 관하여 학생들에게 열정적으로 강조하셨다. 기술은 끊임없이 꾸준히 연마하여 자기 것으로 만드는 과정이 중요하다고 하셨다. 연마는 많은 방법이 있겠지만 아무래도 처음 백지에서부터 코드를 직접 하나하나 작성해보는 과정이 효율적일 것 같다. 수업이 끝나고나서, 그리고 주말 시간을 활용해 정리하는건 물론이고 직접 코드를 처음부터 끝까지 써봐야겠다. 오늘은 참조타입의 배열부분을 학습했다. 점점 배우는 내용이 난이도가 있어서 그런지 진도는 조금 느려진 것 같아서 부담은 덜하다. 하지만 내용이 어려워진만큼 더 노력해야겠다. 아무래도 비대면으로 수업을 듣다보니 집중도가 대면보다 확실히 떨어지는 것 같다. 대면수업이 가능해지면 꼭 대면으로 수업을 들어야겠다...

 

null - 기본타입엔 사용불가!

null
변수가 참조하는 객체가 없을경우 초기값으로 사용가능
따라서 null은 기본 타입에는 안 들어간다

 

배열

 

배열
같은 타입의 데이터를 연속된 공간에 저장하는 자료구조
int[] scores = { 83, 90, 87 };
                    0   1   2    -> 인덱스 번호 (0부터 시작)
(자료구조란 수많은 데이터를 효율적으로 저장 관리할 수 있는 구조)

항목 접근 : 배열이름[인덱스]
ex) scores[0] -> 83

 

자바의 배열은 한번 생성하면
1. 크기를 바꿀 수 없다
2. 타입을 바꿀 수 없다

int[] intArray = { 1, 2, 3, 4, 5, 6, 7 };
이 경우 크기는 7 (원소의 갯수) -> 변경불가
이 경우 타입은 int -> 변경불가

 

배열의 장점
중복된 변수 선언 줄이기 위해 사용
반복문을 이용해 요소들을 쉽게 처리 가능

배열선언
타입[] 변수; (타입 변수[]; 도 되지만 현업에서 그렇게 쓰지 않음)
int[] intArray;

배열은 참조타입이므로 null값 사용 가능하다
이 경우 변수[인덱스] 할 수 없다. (참조할 주소가 없으므로 접근불가)
(null은 값이 없다는 뜻이 없다는게 아니고 주소가 없다는 의미

 

 

배열의 순회 - traverse

 

값의 리스트로 배열 생성

*변수선언과 동시에 값 목록대입 ( new int[] 생략가능)
int[] intArray = { 1, 2, 3 }

*변수선언 후 값 목록 대입 (이게정석)
int[] intArray;
int = new int[] { 1, 2, 3, } 

new는 객체생성연산자

 

new 연산자로 배열 생성

 

*int[] intArr = new int[5];
원소가 5개인 배열을 생성하는것
(원소의 값은 아직 정해지지 않았으므로 기본값으로 들어감)

 

--------------------------------------------------------------

 

배열의 길이
배열에 저장할 수 있는 전체 항목 수

배열의 길이 얻는법
배열변수.length;
ex)
int[] intArray = { 10, 20, 30 }
int num = intArray.length;
-> int num의 값은 3이 된다

배열의 길이는 for문의 조건식에서 주로 사용
int[] scores = { 1, 2, 3 }
for(int i=0; scores.length; i++) {


조건식 i<3; 이렇게 말고 scores.length; 이렇게 배열의 길이로 씀

 

-----------------------------------------------------------------

 

다차원 배열

자바의 배열(객체)은 한번 생성하면 
길이(크기)와 원소의 타입을 변경할 수 없다!

다차원배열
2차원 배열 이상의 배열
3차원 4차원은 현업에서 잘 쓰이지 않는다
2차원 배열을 행렬로 생각하면 안된다