[JAVA] ch2. 변수

황인권·2024년 5월 30일

JAVA

목록 보기
2/15

1. 변수

변수란

단 하나의 값을 저장할 수 있는 메모리 공간

변수의 명명 규칙

  • 대소문자가 구별되며 길이에 제약이 없다.
    • True와 true는 서로 다른 것으로 간주.
  • 예약어를 사용하면 안된다.
    • true는 예약어라서 사용할 수 없지만, True는 가능하다.
  • 숫자로 시작해서는 안된다.
    • top10은 허용되지만, 7up은 허용되지 않는다.
  • 특수문자는 '_'와 '$'만 허용된다.
    • $harp은 허용되지만, S#arp는 허용되지 않는다.

권장하는 규칙

  • 클래스 이름의 첫 글자는 항상 대문자로 한다.
    • 변수와 메서드의 이름의 첫 글자는 항상 소문자로 한다.
  • 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다.
    • ex) lastIndexOf, StringBuffer
  • 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다.
    • ex) PI, MAX_NUMBER

2. 변수의 타입

기본형(Primitive Type)

  • 논리형(boolean), 문자형(char), 정수형(byte, short, int, long), 실수형(float, double) 계산을 위해 실제 값을 저장한다.

참조형(Reference Type)

  • 객체의 주소를 저장한다. 8개의 기본형을 제외한 나머지 타입
  • 참조형 변수를 선언할 때 변수의 타입으로 클래스의 이름을 사용하므로 클래스의 이름이 참조변수의 타입이 된다.
    ex) Data 클래스
Data today = new Data();

기본형(Primitive Type)

  • boolean을 제외한 나머지 7개의 기본형은 서로 연산과 변환이 가능하다.

기본형의 범위


실수형은 정수형과 저장형식이 달라서 같은 크기라도 훨씬 큰 값을 표현할 수 있으나 오차가 발생할 수 있다.
따라서 실수형에서는 범위뿐만 아니라 정밀도도 타입 선택의 중요한 기준이 된다.

  • 정밀도
    • float : 7자리
    • double : 15자리

상수와 리터럴

  • 상수

    final int MAX_SPEED = 10;
    • 변수의 타입 앞에 키워드 'final'을 붙여준다.
    • 반드시 선언과 동시에 초기화를 해야한다.
    • 상수의 값을 변경하는 것이 허용되지 않는다.
  • 리터럴

    • 프로그램에서 직접 표현한 값(소스코드의 고정된 값을 대표하는 용어)
      int year = 2023;
      final int MAX_SPEED = 10;
    • 위의 2023, 10부분을 리터럴이라 한다.

프로그래밍에서는 상수를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의했기 때문에 이와 구분하기 위해 상수를 리터럴이라는 다른 이름으로 불러야만 했다.

  • 리터럴의 타입과 접미사
int small = 100;
long big = 100_000_000_000L;

float pi = 3.14f;
double rate = 1.618d;

float pi = 3.14;		//에러. float타입 변수에 double타입 리터럴 지정 불가
double rate = 1.618;	//OK

// 타입이 달라도 저장범위가 넓은 타입에서 좁은 타입의 값을 저장하는 것은 허용된다.

int i = 'A';	// OK. 유니코드인 65가 변수 i에 저장된다.
long l = 123;	// OK.
double d = 3.14f;	// OK.
  • 문자 리터럴과 문자열 리터럴
    • 문자열 리터럴은 " " 안에 아무런 문자도 넣지 않는 것을 허용하지만 문자 리터럴은 ' '안에 하나의 문자가 있어야 한다.
      String	str = "";	// OK.
      char	ch = '';	// 에러.
      char	ch = ' ';	// OK. 공백 문자(blank)로 변수 초기화
    • 덧셈 연산자(+)는 어느 한 쪽이 String이면 나머지 한쪽을 String으로 변환한 다음 결합한다.
      따라서 기본형 타입 문자로 변환할 떄 빈 문자열("")을 더해주면 된다.

형식화된 출력 - printf()

‘%n’ 대신 ‘\n’을 대신 사용해도 되지만, OS마다 줄바꿈 문자가 다를 수 있기 때문에 ‘%n’을 사용하는 것이 더 안전하다.


3. 형변환

기본형과 참조형간의 형변환은 불가능하다.

자동 형변환

  • 표현범위가 좁은 타입에서 넓은 타입으로 형변환하는 경우에는 값 손실이 없으므로 두 타입 중에 표현범위가 더 넓은 쪽으로 형변환된다.
  • char와 short는 둘다 2byte의 크기이지만 범위가 서로 달라서 자동 형변환이 수행될 수 없다.
profile
inkwon Hwang

0개의 댓글