h-i-s-t-o-r-y

[Java] 변수(Variable)와 상수, 리터럴 본문

Java

[Java] 변수(Variable)와 상수, 리터럴

H' 2021. 7. 12. 20:14

▷ 변수 ?

- 수학에서의 변수 : 변하는 수

- 프로그래밍에서의 변수 : 단 하나의 값을 저장하는 메모리 공간 (저장공간)

- 변수명 : 기억공간의 이름

- 식별자 : 개발자가 임의의 이름을 부여하는 것 - 함수명, 변수명, 클래스명


▷ 자바에서 변수 선언 형식

자료형 변수명[=초기값];

- 이름을 저장할 변수 선언

// The value of the local variable kor is not used
// 변수를 선언하면 뜨는 경고 메시지
// -> 선언해놓고 왜 사용 안하니?
String name;

- 초기화 : 처음에 변수에 값을 저장하는 것

// The local variable name may not have been initialized
// 초기화 하지 않고 사용하려 하면 뜨는 오류
// initialized 되어야 local variable name 사용할 수 있음
name = "홍길동";

- 변수 선언과 동시에 초기화

String msg = "Hello World!";

- 변수 여러개를 한 번에 선언

int kor, eng, mat; //콤마(,) 나열 연산자
kor = eng = mat = 100; //(=) 대입 연산자

▷ 식별자(변수) 명명 규칙

> 자바는 대소문자를 구분한다.

자동완성을 잘 이용해서 오타를 내지 않도록 주의하자

String name = "홍길동";
String Name = "김길동"; // (X)

System.out.println(name);
System.out.println(Name);  // (X)

> 변수 명명 규칙

- 숫자로 시작하면 안된다.

- 특수문자는 _와 $만 허용한다.

- 여러 단어로 이루어진 경우, 단어의 첫글자는 대문자로 표기하는 것을 권장한다. (Camel 표기법)

- int, do와 같은 자바 예약어는 사용할 수 없다.

String _name;           //O
String name01;          //O
String 1name;           //X
String $name;           //O
String first name;      //X
String firstName;       //O
String int;             //X

> 상수 명명 규칙

- 상수의 이름은 모두 대문자로 한다.

- 여러 단어인 경우 _로 구분한다.

final int MAX_VALUE;
final double PI = 3.14;​

▷ 상수와 리터럴

> 상수 ?

값을 저장하는 메모리 공간. 한 번 초기화하면 값을 변경할 수 없다.

// PI와 같은 고정값은 주로 상수로 선언한다
final double PI = 3.141592;

int 가로 = 10, 세로 = 20;
int 사각형면적 = 가로 * 세로;
System.out.println( 사각형면적 );

// 원 면적 , 원 둘레
int 반지름 = 34;
double 원면적 = 반지름 * 반지름 * PI;
System.out.println(원면적);

반지름 = 34;
원면적 = 반지름 * 반지름 * PI;
System.out.println(원면적);

반지름 = 34;
원면적 = 반지름 * 반지름 * PI;
System.out.println(원면적);

반지름 = 34;
원면적 = 반지름 * 반지름 * PI;
System.out.println(원면적);

반지름 = 34;
원면적 = 반지름 * 반지름 * PI;
System.out.println(원면적);

> 리터럴 ?

그 자체로 값을 의미하는 것 3.14, 'A', true (기존에 우리가 알고 있던 상수라고 생각하면 쉽다)

1은 정수1, '1'은 문자1, "1"은 문자열1 을 의미한다

 

- 논리형 리터럴 : true, false

- 정수형 리터럴 : 100, 0xFF

- 실수형 리터럴 : 3.14, 3.0e8

- 문자 리터럴 : 'A', '\n', '\u0112'

- 문자열 리터럴 : "A" = 'A'+'\0', "홍길동"

int i = 100;   //4byte 0
long l = 100L; //리터럴 + 접미사(L) 8byte 0
float f = 0F;  //float 4byte 0
//int j = 0F;  // float(4) 4byte 0
double d = 0D; //double 8byte 0​

 

 

Comments