검색해보니 변수는 위와 같은 정의를 가지고 있었습니다.
왠지 "변화"와 관련된 단어라는 느낌이 듭니다.
변수, 왜 필요한걸까요?
이런 걸 하고 싶은겁니다.
"안녕하세요 저는 자바를 공부하고 있는 학생입니다."
라는 문구를 어디 저장해 놓고 필요할 때마다 쓰고 싶은겁니다.
여기서 "어디 저장해 놓고 필요할 때마다 쓰고 싶은"이라는 부분이 굉장히 중요합니다.
이게 변수의 전부거든요.
👀 어떻게 저장해 놓고, 어떻게 가져다 쓰는지 확인해볼까요?
String text = "안녕하세요 저는 자바를 공부하고 있는 학생입니다.";
"안녕하세요 저는 자바를 공부하고 있는 학생입니다." 라는 문구를 text라는 이름을 가진 변수명으로 초기화 하는 겁니다.(=text라는 이름을 가진 주머니에 넣는겁니다)
그러면 이제 우리는 text라는 키워드만 가져오면 언제든지
"안녕하세요 저는 자바를 공부하고 있는 학생입니다."
라는 문장을 빼낼 수 있게 되는겁니다.
그리고 위에서 제가 했던 작업이 바로 "변수를 선언"한 것 입니다.
String text = "안녕하세요 저는 자바를 공부하고 있는 학생입니다.";
System.out.println(text);
그리고 이젠 이렇게 text만 가져오면 그 안에 담긴 내용을 재사용 할 수 있게 됩니다..
(System.out.println();의 괄호 안에 원하는 내용을 적으시면 그 내용이 console이라는 창에 출력됩니다.)
그런데 text라는 이름을 가진 주머니는 보통 주머니가 아닙니다.
String타입만 들어갈 수 있는 주머니죠.
검색해보니 타입은 위와 같은 정의를 가지고 있었습니다.
왠지 "그룹"와 관련된 단어라는 느낌이 듭니다.
자바에는 타입이라는 개념이 존재합니다.
변수를 선언할 때 해당 변수의 내용물에 뭐가 담기냐에 따라 타입도 달라지게 됩니다.
이런 식입니다.
"숫자는 빨간 주머니에 넣어야합니다."
"문자는 노란 주머니에 넣어야합니다."
라는 규칙이 만들어져 있으니, 우리는 그 규칙에 따라야하는 것이죠.
위 규칙대로라면 숫자는 빨간 주머니에 넣어야하죠...!
근데 만약 실수로 숫자를 노란 주머니에 넣게 되면 어떻게 될까요?
이클립스(자바를 프로그래밍 할 수 있는 툴)에서 친절하게 알려줍니다.
"❗숫자는 빨간 주머니에 넣으세요.❗" 라고 말이죠.
이제 진짜 자바의 타입 종류를 알아보겠습니다.
크게 두 종류(기본형과 참조형)로 나뉩니다.
🔗 자세한 내용은 해당 링크를 참조하시면 도움이 되실 듯 합니다!
그럼 이제 문자열 a를 변수에 넣고 싶다면 그 타입으로 뭘 적어줘야 할까요?
char a = 'a';
이렇게 적으시면 됩니다!
5라는 정수를 넣고 싶다면요?
byte five = 5;
이렇게 적으시면 됩니다!
이런 것도 가능합니다.
byte five = 5; // byte타입의 five라는 주머니에 있는 5를
int intFive = five; // int타입의 intFive라는 주머니에 대입합니다.
어떻게 그럴 수 있을까요? int는 byte보다 숫자를 담을 수 있는 그릇이 더 큽니다.
int가 byte를 😮와앙ㅇ! 하고 먹어버리는거죠.
이걸 "자동타입변환"이라고 이야기합니다.
byte는 1byte의 크기를 가졌고, int는 4byte의 크기를 가졌습니다. (byte가 int보다 메모리의 크기가 더 작죠?)
작은 크기의 타입이 큰 크기의 타입에 저장될 때 자동으로 타입이 변환되어 저장됩니다.
five에 있는 5는 byte타입이지만,
intFive에 있는 5는 byte타입이 아니라 int타입이 된 것이죠.