2011년 4월 24일 일요일

자바의 변수와 상수(Variable & Constant)

이번 시간에는 변수(variable)와 상수(constant)에 대해서 알아보기로 하자.

a=0;

a는 다른 값으로 변경시킬수 있다. 이렇게 변하는 수가 변수이고 0처럼 항상 같은 수 변하지 않는 수를 상수라 한다.

b=true;

숫자가 없으니 조금 어려운가? b가 변수이고 상수는 true이다. 참과 거짓을 표시하는 키워드가 있는데 참을 true로 거짓은 false로 표시한다. 자바를 비롯한 대부분의 프로그래밍에서 맞는지 틀리는지 검사할때 사용하는 키워드이다. 이런 자료형을 boolean 타입이라고 하는데 컴퓨터 전산이나 전자공학에서 숫자 1과 0을 사용하여 참인지 거짓인지를 구분할때 많이 쓰이는 방식이 바로 불린 타입이다.

변수 본김에 이름 짓는 규칙에 대해서 다시 한번 상기시키겠다. 저번에 언급한데로 메소드는 첫 글자를 소문자로 시작하고 클래스는 대문자로 시작한다. 또한 변수도 첫 글자를 소문자로 시작하며 연결되는 단어 첫글자에만 메소드처럼 대문자로 쓰는 것이 관례다. 그리고 이름을 지을때 public void static class true false 같은 자바에서 사용하는 키워드로 이름을 지을수는 없다. 명령어와 구분해야되니까 말이다.

그럼 변수와 상수를 이용해서 간단한 예제를 실행해 보기로 하자.
a랑 b의 경우 결과가 어떻게 나오는지 보았으면 아주 시시하게 생각할수도 있고 아니면 신기하게 생각할수도 있겠다. 시시하게 보는 이들은 true랑 false를 그대로 입력하였으니 찍히는게 당연하다고 생각하는 쪽일테고 신기하게 생각하는 이들은 String 즉 문자형이 아닌데도 출력하는게 신기하다고 생각할 것이다. 여러분은 후자이길 바란다.^^ true랑 false는 그냥 문자가 아니라 자바에서 참과 거짓을 판단하는 boolean형의 키워드이다. 따라서 특별한 조치(?)없이 저렇게 참거짓을 출력할수 있다. String 타입인 s랑 비교를 하면 이해가 쉬울 것이다. boolean형은 나중에 여러분이 배우게될 조건문에서 수시로 보게 될것이니 기대하시라.-

c와 d는 한마디로 정수 즉 소숫점이 없는 경우와 소숫점이 있는 경우의 차이라고 알아두면 된다. 위와 같이 c나 d같은 변수를 쓰려면 자료형을 먼저 자바에게 알려주어야 한다.

int c;
double d;

위와 같이 자료형을 정의해 주지 않으면 그 변수값에 뭐가 어떤 형태로 들어갈지 자바에서 준비를 해놓을수가 없으므로 에러가 난다. 위의 예제에서는 자료형은 자료형데로 입력값 넣을때랑 결과값도 마찬가지로 종류별로 분류해 놓았다. 별거 아닌듯 하나 정리를 이렇게 잘해놓으면 코드가 길면 길수록 빛을 바란다. 프로그램 전체를 한눈에 알아보기 쉽고 변수 관련 부분이나 출력 관련 부분을 다시 찾아볼때  시간을 줄일수 있어 상당히 편하다. 물론 여러분이 원할시 int c=0; 이런 형태로 두 줄을 한 줄로 바꿔서 쓸수도 있다. 이런 경우는 자주 쓰이는 변수보다는 임시로 변수가 필요할시 보통 사용한다.

s는 아까 언급했으니 알것이고 마지막으로 o에 대해서 설명해 보겠다. 사실 s랑 결과가 같은데 달라보이니 재미(?)있을 것이다. 아니면 말구~ ㅎㅎ String 클래스를 이용해 o라는 객체를 생성해서 이렇게 문자를 찍을수도 있다.

String o;
o=new String("how are you?");

String o=new String("how are you?");

위의 예제는 첫번째 방식을 택했는데 두번째꺼랑 같은 말이다. 이거야 프로그래머(?) 역량에 따라 선택해서 쓰는데 객체 생성을 여러개 하면 모를까 그렇지 않다면 s변수처럼 객체 생성없이 그냥 문자를 받아들이는 경우도 있으니 두번째 표현방법이 한눈에 알아보기가 더 쉬울 것이다. 예제는 본인이 직접 타이핑해서 실행해 보기 바라면서 그래도 혹시 여태까지 기다려온 끈기있는 회원들(?)을 위해 결과값을 특별히 공개한다. 결과보고 땡치지 말고 반드시 직접 해보기 바란다. ^^

true
false
0
1.2345
hello
how are you?

댓글 2개:

  1. 잘보고 가염

    -Carter24

    답글삭제
  2. 변수 o에 관해 의문이 들어서요...
    new String("how are you?"); 이거랑 "how are you?" 랑
    결과는 같은 같은데... ""만 있는거는 new String이 쓰지않고 간편히 표현해놓은건가요.? 아님 두개가 다른 성질을 가진것인가요..?
    만약 틀리다면 사용함(?)에 있어서 다른게있나요..
    음..

    답글삭제