낚시하는 프로그래머

자바(JAVA) 프로그램 기초 4

 

안녕하세요. 지난번 시간에는 이클립스를 설치를 하고, 실행을 해보았습니다.  또한 기초적인 자바 예약어들에 대한 설명을 하였습니다. 

 

자바 변수(variable)란? 

쉽게 이야기하여 변수란 변한다고 하여 변하는 수를 이야기하는 것입니다.
프로그램 작성시 변수를 명명하여 특정 메모리에 할당을 하게 됩니다. 

변수의 사용법

변수의 선언 : int num;    
변수의 초기화 : num = 10;

변수의 선언법은 변수의 앞에 데이터 타입을 선언을 한 후 변수명을 지어줍니다. 데이터 타입형이 int (정수형)으로 선언을 해준후 num이라는 변수에 정수 10을 초기값으로 넣어 주었습니다.  이렇게 되면 num 변수의 메모리에 10이라는 숫자가 할당이 되어 있고, num을 출력을 하게 되면 10이 출력이 됩니다. 반면에 상수라는 것도 있습니다. 상수는 한번 정해지면 값을 변경할 필요가 없는 데이터를 말합니다. 

데이터 타입 : int  , double, String 타입을 주로 많이 씁니다. 

public class Maintest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
      
		int num = 10;
		double numdouble = 11.5;
		String strName = "자바테스트";
		
		System.out.println(num);
		System.out.println(numdouble);
		System.out.println(strName);
		
	}

}

결과 
10
11.5
자바테스트

소스를 보시면 num 변수에 정수(int) 10을 선언하고, numdouble 변수에 실수형(double) 11.5를 선언을 했습니다. 그 후 strName 변수에 문자열(String) 자바 테스트를 선언 후 System.out.println() 명령문으로 화면에 출력을 하였습니다. 

 

자료형의 선언할 때 주의사항 

자료형을 선언을 할때 특히 주의를 해야 될 부분이 오버플로우(overflow)입니다. 

각 자료형에는 최대한 숫자를 표현하기 위한  최대 범위의 숫자가 있습니다. 그런데 최대범위의 숫자를 넘어버리는 값이 들어갔을 경우에는 오버플로우가 발생이 됩니다. 예를 들어 정해져 있는 상자의 크기가 있는데, 그 정해져 있는 상자의 크기보다 큰 물건을 담으려면 오류가 발생하는 것과 같습니다. 

자료형의 범위

자료형 데이터 메모리양 표현가능값
byte 정수 1byte -128 ~ 127
short 정수 2byte -32768 ~ 32767
int 정수 4byte -2147483648 ~ 2147483647
long 정수 8byte -9223372036854775808 ~ 9223372036854775807
float 실수 4byte ±(1.40129846432481707e-45 ~ 3.40282346638528860e+38)
double 실수 8byte ±(4.94065645841246544e-324d ~ 1.79769313486231570e+308d)
char 문자 2byte 모든 유니코드 문자
boolean 참, 거짓 1byte true, false

소스로 자료형 오류를 만들어 보겠습니다. 

예제)

public class Maintest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
      
		int num ;
	
		num = 1.5;
		
		System.out.println(num);
		
	}

}

 정수로 선언한 num 변수에 강제로 1.5라는 실수를 초기화를 시킨 후 출력을 하였습니다. 결과는 

다음과 같은 오류 메시지가 나옵니다. 실수를 정수에 대입하여 오류가 났습니다. 

 

자바 데이터의 형 변환

자바 자료형을 이용한 계산을 할 경우 형 변환이 이루어 질 수 있습니다. 예를 들어 형변환 예제를 하나 만들어 보겠습니다. 

public class Maintest2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
      
		int num ;
	
		num = 'k';
		
		System.out.println(num);
		
	}

}

정수형 변수 num에 문자열 K를 입력을 하였습니다. 그런데 결과값을 출력을 해보면 엉뚱한 값이 나옵니다.  107이라는 숫자가 나오는 것을 확인을 하실 수 있습니다. 이것은 묵시적 형 변환이 되어 k 라는 값의 아스키 값이 출력이 된 것입니다. 

<형 변환의 종류>

묵시적 형변환 - 데이터 크기가 큰 것에서 데이터 크기가 작은 것을 담을 때 자동으로 자바에서 형 변환이 일어납니다.

명시적 형변환 - 데이터 크기가 작은 것에서 데이터 크기가 큰 것을 담을 때 직적 접으로 자바 개발자가 형 변환을 해줘야 됩니다. (데이터의 손실이 발생할 수 있습니다.)

명시적 형변환의 예시

float num = 12.3f
int i = (int)num;

 

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band