<자바에서의 변수란?>
값을 저장할 수 있는 메모리상의 공간을 말한다.
인간이 하드디스크의 구조와 주소체계를 모두 알아서 직접 저장하면 얼마나 좋은가? 아쉽게도 하드디스크의 구조는 매우 어려우므로 인간이 직관적으로 알아들을수 있는 변수라는 것을 만들어서 사용하게 된다.
<변수의 선언?>
int num; // 이것이 num이라는 정수형 변수를 선언한 것이다.
이번에는 초기화도 해보자.
int num1 = 10; // 이것은 num1이라는 정수형 변수에 10이라는 정수를 저장(대입)한 것이다.
변수를 선언할 때 이름 짓는 규칙이 있다.
1. 특수문자는 _ 와 $ 만을 허용
2. 예약어를 사용하면 안된다. (package, public, return, for, null, new 등...)
3. 대소문자가 구분되며, 길이에 제한이 없다
4. 숫자로 시작하면 안된다.
다음과 같은 4가지의 규칙에만 어긋나지 않게 변수이름을 지으면 된다.
※ 이번에는 자바프로그래머들 사이에서 약속이 있다. 변수이름을 지을 때 알아듣기 쉽게 정의해놓은 것이다.
1. 여러 단어로 이루어진 이름은 단어의 첫 글자만 대문자로 한다.
2. 클래스 이름의 첫 글자는 대문자로 한다.
3. 상수의 이름은 모두 대문자로, 여러 단어로 이루어진 경우 _ 로 구분한다.
<변수의 타입?>
1. 기본형
① boolean(1byte) : 논리형이라고 하는데 한가지 밖에 없다. true아님 false 마치 스위치의 on/off와 비슷하다.
선언)
boolean abc = true; // abc라는 논리형 변수에 true저장
② char(2byte) : 문자형이라고 하는데 java에서는 char이 2바이트이다. 이유는 UniCode체계를 사용하기 때문이다.
선언)
char abc = 'A'; // abc라는 문자형 변수안에 문자 A를 저장
※ 그렇다면 특수문자를 표현할 때는 어떻게 할까?
특수문자 | 리터럴 |
tab | \t |
backspace | \b |
form feed | \f |
new line | \n |
carriage return | \r |
역슬래쉬 | \\ |
작은 따옴표 | \' |
큰 따옴표 | \“ |
<실습 - char>
-결과-
③ byte(1byte), short(2byte), int(4byte), long(8byte), : 정수형 변수이다. 숫자를 저장할 수 있는 변수이다.
<실습 - 정수형 변수>
-결과-
④ float, double : 실수형을 저장할 수 있는 변수이다. 범위는 엄청 크기 때문에 큰 숫자를 저장할 때 혹은 소수점을 나타낼 때 사용된다.
<실습 - 실수형 변수>
이렇게 큰 숫자를 저장할 수 있다. E표기법은 생략하겠다.
그런데 실수형 변수 float을 사용한 a에는 소수점 8자리에서 반올림 하였다. 기본 디폴트가 8자리에서 반올림 하는 것이고, .2이런식으로 소수점을 나타내고 싶은 곳까지 지정할 수 있다. 그리고 float형은 접미사 f를 붙여줘야한다.
2. 참조형
기본형을 제외한 나머지 타입인데, 객체의 주소를 저장한다.
자 그렇다면, 참조형 변수를 선언해보자.
객체의 주소를 담는다? C언어에서 어떤 변수의 주소는 포인터 변수에 담아봤는데... 그렇다!
거의 비슷한 맥락이다.
기본 문법)
클래스이름 변수명;
Date day = null; // Date클래스 타입의 참조변수 day가 만들어 진 것이다.(아직 주소가 들어가지 않음) 그리고 그 안에는 null이 저장된다.
Date day = new Date(); // Date 클래스 타입의 참조변수 day에 new의 연산자를 사용하여 객체의 주소를 저장했다. 그럼 day가 갖고 있는 값은 무엇일까? 당연히 Date클래스 타입의 객체 주소이다.
'Programming > Java' 카테고리의 다른 글
Java - if문, if ~ else if문 (0) | 2015.12.05 |
---|---|
Java - 삼항 연산자 (0) | 2015.12.05 |
Java - println, printf, print로 출력문을 만들어보자. (0) | 2015.12.05 |
Java - Java 기본 원리와 기초 (패키지, 클래스 생성) (0) | 2015.12.04 |
Java - Java SE, EE, ME 차이점 (0) | 2015.12.04 |