티스토리 뷰

 ★ App 클래스 생성 후, main 메서드 생성

Step01_todo_mvc라는 자바 프로젝트를 만들었다.

source를 뜻하는 src폴더에 default package 자동으로 생성되었다.

이 package에 App.java라는 파일을 만들었다.

 

Hello World를 입력하여 잘 출력되는지 확인을 하려했으나 

빨간 줄로 에러라는 반응을 보내왔다. 에러는 언제봐도 가슴이 아리다. 왜 그럴까?

바로 컴파일이 안되었기 때문이다.

 

☆컴파일이란?

- 개발자가 작성한 소스코드 -> 바이너리 코드로 변환하는 과정이다.

즉, 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 

 

컴파일이 되기 위해서는 메인 메서드 안에 넣어줘야한다.

public static void main(String[] args)의 의미를 알아보자.

 

☆ public

- public 접근 지정자 또는 접근 제한자라고 불린다. 

  접근 지정자 중 public은 제한없이 어디에서나 사용이 가능하다는 뜻이된다.

  반대의 의미로 상속 클래스등에서만 사용할 수 잇는 protected와 외부에서 접근 가능한 Private 등이 있다.

 

☆ static

- 정적이란 뜻이다. 메서드에 붙여졌으므로 이 메서드는 정적 메서드이다.

  이 static으로 선언하게 되는 경우, 자바가 컴파일 되는 시점에 정의가 된다.

  그리고 static 요소를 static이 아닌 요소에서 호출하는 것은 불가능하다.

  특히, main메서드처럼 프로그램의 시작점이 되는 요소는 객체가 없어도

  작업을 수행해야 하기 때문에 static이어야한다.

 

☆ void

- '존재하지 않음' 혹은 '아무것도 없이 비어있음' 혹은 그러한 공간을 일컫는 단어이다.

   인자로 void가 주어지면 인자가 아무것도 없다, 빈 공간이다 라는 것을 뜻한다.

   함수의 반환형이 void이면 함수가 끝날 때 아무것도 반환하지 않는다.

 

☆ String[] args

- 메서의 매개변수를 나타낸다. args 문자열을 배열로 사용하겠다 라는 의미이다.

  args = Arguments 를 뜻하지만 굳이 이걸로 사용하지 않아도 된다고 한다.

 자바 프로그램 실행시에 주어진 "옵션"들이 자동으로 담겨지는 곳이다.

 

 

 


★ 배열 (Array) 

- 학교에 학생 100명이 있다. 100명의 학번을 어떻게 관리할 수 있울까? 

  학번의 자료형을 정수라고 하면 변수 100개를 선언해아한다. 일일이 쓰는게 귀찮다.

  이때 사용하는 자료형이 배열 (array)이다. 배열을 사용하면 자료형이 같은 자료 여러 개를 한 번에 관리할 수 있다.

  배열은 연속으로 나열된 자료 구조라는 것이 특징이다.

 

  ※ JavaScript 배열 vs Java 배열의 특징

      - JavaScript 배열 : 가변 길이 / 다양한 데이터 타입의 보관이 가능

      - Java 배열 : 고정 길이 / 정해진 타입의 데이터만 보관 가능

 


★ 배열의 선언  

1. 우선, 정수형 변수로 studentId 1,2 를 선언한다.

 

2, 3. 배열을 선언하는 문법은 아래와 같다.

더보기

   자료형 [] 배열 이름 = new 자료형 [개수];

   자료형 배열 이름 [] = new 자료형 [개수];

위의 2,3 번 라인은 int형 요소가 3개인 배열을 선언한 것이다.

 

4. 배열 명을 출력한다. 배열도 하나의 object이다. 

 

5. 객체는 property를 가지고 있다.

   length라고 하는 property이다. 이것을 출력하는 것이다. length는 배열의 길이를 확인할 수 있다. 

 


★ 배열의 길이 확인/ 참조 타입 / 문자열화

 

1. studentIDs 라는 이름의 정수형 배열을 만들었다. studentId1,2는 요소이다.

 

2. studentIDs의 길이를 출력했다. 요소가 2개이므로 2 가 나왔다.

 

3. 알 수 없는 값이 나왔다. 

   배열은 참조 타입이다.  참조 타입은 주소 값을 가지고 있다. 

 

4. studentId1d의 값이 1이라고 나온다.

 

5. toString()은 문자열화하는 메서드이다. toString 뒤에 소괄호 '()" 가 있어서 메서드라 말할 수 있다. 

   오버라이딩이 되어서 안나왔다. 강사님이 나중에 설명해주신다고 하셨다.


 

★ 배열의 인덱스 / 요소 추가 , for each 문

출력 화면

배열의 요소 2개를 지정했다.  값이 1,2 출력 되었다.

studentIDs [2]의 값은 없다. 따라서 콘솔 창에는 'ArrayIndexOutOfBoundsExcetion' 이라 에러가 나왔다.

하지만 23번 라인에는 에러를 나타내는 빨간 줄이 안 생겼다. 

그 이유는 문법적으로 틀린 에러는 없기 때문이다. 값이 없을 뿐.. 정리하자면, '문법적 에러' 가 없기 때문이다. 

 

출력 화면

1. 길이가 3인 문자열 배열을 생성했다.

 

2. 배열의 요소를 추가했다.

   나의 사심을 듬뿍 담아.. 힘든 코딩 배움의 소소한 재미다.

 

3. for each문이다. 

  studentName에 studentNames 배열의 요소가 하나씩 할당된다는 뜻이다.

  1 step씩 순차적으로 반복 될때만 사용이 가능하다.

  그럼 나의 최애들을 만날 수 있다. 쫘좐!