'자바'에 해당되는 글 2건

  1. 2011.04.13 [Java] 묵시적, 명시적 형 변환
  2. 2011.04.05 [Java] Hello World 예제
2011.04.13 10:52

1. exam01.java 소스코드 작성

묵시적 형 변환에 관련된 예제 입니다.


3 - short형 변수 S01 에 10을 대입합니다.
4 - short형 변수 S02 에 20을 대입합니다.
5 - short형 변수 S03 에 10+20의 결과를 대입합니다.
6 - short형 변수 S04 에 변수S01 과 변수 S02를 더한다음 그것의 결과를 대입합니다.*
7 - long형 변수 S05 에 변수S01 과 변수 S02를 더한다음 그것의 결과를 대입합니다.


저장 후, 컴파일 하면 에러가 발생합니다.

6번째 라인에서 오류가 발생했음을 알리는 메시지 입니다.


이유....
자바에서 연산을 하면서 변수 타입이 기본으로 자동 지정되어졌기 때문입니다.
정수 + 정수 에서 기본 데이터 타입이 int 형인데 이것을 int보다 작은 크기인 short 에 넣겠다고 해서 발생한 오류입니다.


[해결 방법]
방법1 - 연산 부분을 괄호로 묶고 앞에 명시적 형 변환을 합니다.
           short S04 = (short)(S01+S02)

방법2 - 변수 S04의 타입을 int 형으로 선언 합니다.
         int S04 = S01+S02

방법3 - 변수 S04의 타입을 String 형으로 선언 하고, 뒤에 +"" 를 추가하여 문자화 합니다
           (주의! - 방법3 의 경우, 데이터가 문자열로 인식됩니다.)
           String S04 = S01+S02+""



* 자바에서 연산시 기본으로 지정되는 데이터 타입
정수연산 - int
실수연산 - double
문자결합 - String

정수 + 정수 = int
정수 + 실수 = double
정수 or 실수 + "문자" = String


그냥 간단하게...
작은 크기에서 큰 크기로 형 변환은 자동(묵시적)으로 이루어 지지만, 그 반대 의 경우에는 반드시 명시적으로 형 변환을 해 주어야 합니다.

보다 자세한 데이터타입이나 크기는 검색을...
Posted by 해비
2011.04.05 10:44

1. Hello.java 소스코드 작성

단 5줄 짜리의 초간단 예제 입니다.
(에디트 플러스, 메모장, 이클립스 기타... 어떤 툴을 사용하셔도 상관없습니다)



2. 컴파일
javac Hello.java

Hello.java 파일이 있는 경로로 가서 위와 같이 컴파일을 합니다.
.class 파일이 결과물로 생성됩니다.



3. 실행
java Hello

위 소스코드의 3번째 라인에 있는...
Hello World!
가 출력되면 정상적으로 컴파일 및 실행이 된 겁니다.

주의 : 실행 시, 확장자는 적으면 안됩니다.
예) java Hello.class -> 실행 안됨!!




public static void main(String[] args)
또는
public static void main(String args[])
어느쪽이든 좋습니다.

public - 접근제어를 뜻합니다. (공개 - 클래스내부, 외우 어디에서든 접근 가능)
static - 공유를 의미합니다. (모든 객체에서 공통으로 사용)
void - 리턴값이 없음을 의미 합니다.
(보다 자세한 내용은 뒤에서 다루겠습니다)

String[] args 는 실행시 매개변수를 받아오기 위한 용도로 쓰여집니다.
java Hello [매개변수1] [매개변수2] [...]


public static void main(String[] args)는 형식이 딱 지정되어있으므로 암기해 두는것이 좋습니다.
자바에서 프로그램의 시작점이 되는 곳입니다.


매개변수의 구분은 스페이스(띄움) 이며, 각 매개변수는 배열로 받아오게 됩니다.

그렇게 조금 변경된 Hello.java 의 소스코드 입니다.

args[0]
args[1]
의 2개의 매개변수를 받아와서 출력하는 구분이 추가되었습니다.

컴파일 후,
실행시 뒤에 관련 매개변수값(아무거나...) 넣어주시면 되겠습니다

위와 같이 실행이 되어집니다.

그런데,
매개변수가 모자르거나 아예 없을경우는 에러가 발생합니다.

위 코드를 보면 4번째 라인에서 오류가 발생하였음을 알리고 있습니다.

즉, 매개변수 배열의 0번째가 존재하지 않는데 0번째의 값을 가져다 쓰려고 한다고 예외가 발생했음을 알립니다.

이것마저 해결하고자 한다면은...
try~ catch 구문을 이용하여 오류 발생시 catch 블럭으로 처리를 던지는 식으로 오류 처리를 할수 있습니다만, 여기서 이것까지 하지는 않습니다.
다만, 이런 방법도 있다는 것을 알려드립니다.
(자세한 내용은 뒤에서 다루도록 하겠습니다)



[체크 사항]
Java 소스파일의 파일명은 main 메소드가 포함된 클래스의 명으로 지정하여야 한다!



Posted by 해비