[JAVA] 변수

y55n·2022년 6월 8일
0

JAVA

목록 보기
1/18
post-thumbnail

변수란?

  • 변수(Variable)는 값을 저장할 수 있는 메모리의 공간을 의미한다.
  • 변수에는 여러 개의 값을 저장할 수 없고, 단 하나의 값만 저장할 수 있다.
  • 변수에는 다양한 타입의 값을 저장할 수 없고, 한 가지 타입의 값만 저장할 수 있다.

    변수란, 하나의 값을 저장할 수 있는 메모리 공간이다.

변수 선언

  • 변수를 사용하기 위해서는 먼저 변수를 선언해야 한다.
  • 변수 선언은 어떤 타입의 데이터를 저장할 것인지 그리고 변수 이름이 무엇인지를 결정한다.
int age;		//정수(int)값을 저장할 수 있는 age 변수 선언
double value;	//실수(double)값을 저장할 수 있는 value 변수 선언
  • 같은 타입의 변수는 콤마(,)를 이용해서 한꺼번에 선언할 수 있다.
int x,y,z;
  • 변수 이름은 메모리 주소에 붙여진 이름이다.
  • 프로그램은 변수 이름을 통해서 메모리 주소에 접근하고, 그곳에 값을 저장하거나 그곳에 있는 값을 읽는다.
  • 변수 이름은 자바 언어에서 정한 명명 규칙을 따라야 한다.
작성규칙
첫 번째 글자는 문자이거나 '$', '_' 이어야 하고 숫자로 시작할 수 없다가능:price, $price, _companyName
안됨: 1v, @speed, $#value
영어 대소문자가 구분된다(필수)firstname과 firstName은 다른 변수
첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫 문자를 대문자로 한다.(관례)maxSpeed, firstName, carBodyColor
문자 수(길이)의 제한은 없다.
자바 예약어는 사용할 수 없다.(필수)
  • 자바는 예약어들로 변수 이름을 지정하면 컴파일 에러가 발생하기 때문에 주의해야 한다.
분류예약어
기본 데이터 타입boolean, byte, char, short, int, long, float, double
접근 지정자private, protected, public
클래스와 관련된 것class, abstract, interface, extends, implements, enum
객체와 관련된 것new, instanceof, this, super, null
메소드와 관련된 것void, return
제어문과 관련된 것if, else, switch, case, default, for, do, while, break, continue
논리값true, false
예외 처리와 관련된 것try, catch, finally, throw, throws
기타transient, volatile, package, import, synchronized, native, final, static, strictfp, assert

변수 사용

변수를 사용한다는 것은 변수에 값을 저장하고 읽는 행위를 말한다.

변수값 저장

  • 변수에 값을 저장할 때에는 대입 연산자(=)를 사용한다.
  • 우측의 값을 좌측 변수에 저장한다는 의미를 갖는다.
  • 변수를 선언하고 처음 값을 저장할 경우, 이러한 값을 초기값이라고한다.
  • 변수에 초기값을 주는 행위를 변수의 초기화라고 한다.
int score;	//변수 선언
score=90;	//값 저장
  • 초기값은 변수를 선언함과 동시에 줄 수도 있다.
int score=90;
  • 코드 내에서 직접 입력된 값을 리터럴(literal)이라고 부른다.
  • 리터럴은 값의 종류에 따라 정수 리터럴, 실수 리터럴, 문자 리터럴, 논리 리터럴로 구분된다.

정수 리터럴

  • 소수점이 없는 정수 리터럴은 10진수로 간주한다.
    0, 75, -100

  • 0으로 시작되는 리터럴은 8진수로 간주한다.
    02, -04

  • 0x 또는 0X로 시작하고 0~9 숫자나 A,B,C,D,E,F 또는 a,b,c,d,e,f로 구성된 리터럴은 16진수로 간주한다.
    0x5, 0xA, 0xB3, 0xAC08

정수 리터럴을 저장할 수 있는 타입은 byte, char, short, int, long과 같이 5개가 있다.

실수 리터럴

  • 소수점이 있는 리터럴은 10진수 실수로 간주한다
    0.25, -3.14

  • 대문자 E 또는 소문자 e가 있는 리터럴은 10진수 지수와 가수로 간주한다.
    5E7 0.12E-5

실수 리터럴을 저장할 수 있는 타입은 float, double이 있다.

문자 리터럴

  • 작은 따옴표(')로 묶은 테스트는 하나의 문자 리터럴로 간주한다.
    'A', '한', '\t', '\n'

  • 역슬래쉬(\)가 붙은 문자 리터럴은 이스케이프(escape) 문자라고도 한다.

이스케이프 문자용도유니코드
'\t'수평 탭0x0009
'\n'줄 바꿈0x000a
'\r'리턴0x000d
'\"'"(큰따옴표)0x0022
'\'''(작은따옴표)0x0027
'\\'\0x005c
'\u16진수'16진수에 해당하는 유니코드0x0000~0xffff

문자 리터럴을 저장할 수 있는 타입은 char 하나뿐이다.

문자열 리터럴

  • 큰따옴표(")로 묶은 텍스트는 문자열 리터럴로 간주한다.
  • 큰따옴표 안에는 텍스트가 없어도 문자열 리터럴로 간주된다.
  • 문자열 리터럴 내부에서도 이스케이프 문자를 사용할 수 있다.

"대한민국" "탭 만큼 이동\t 합니다" "한줄 내려 쓰기 \n 합니다."

문자열 리터럴을 저장할 수 있는 타입은 String 하나뿐이다.

논리 리터럴

  • true와 false는 논리 리터럴로 간주한다.
    true, false

논리 리터럴을 저장할 수 있는 타입은 boolean 하나뿐이다.

변수값 읽기

  • 변수는 초기화가 되어야 읽을 수가 있고, 초기화되지 않은 변수는 읽을 수 없다.

❌잘못된 예

int value;				//변수 value 선언(초기화 안 됨)
int result=value+10;	//변수 value 값을 읽고 10을 더한 결과값을 변수 result에 저장

⭕올바른 예

int value=30;
int result=value+10;

변수 사용 범위

  • 변수는 중괄호 {} 블록 내에서 선언되고 사용된다.
  • 중괄호 블록을 사용하는 곳은 클래스, 생성자, 메소드이다.
  • 메소드 블록 내에서 선언된 변수를 로컬 변수(local variable)라고 부른다.
  • 로컬 변수는 메소드 실행이 끝나면 메모리에서 자동으로 없어진다.
  • 변수는 메소드 블록 내 어디에서든 선언할 수 있지만, 변수 사용은 제한이 따른다.

변수는 선언된 블록 내에서만 사용이 가능하다.

  • 제어문 블록에서 선언된 변수는 해당 제어문 블록 내에서만 사용이 가능하고 블록 밖에서는 사용할 수 없다.
int v1=15;
if(v1>10){
	int v2=v1-10;
}
int v3=v1+v2+5;	//v2 변수를 사용할 수 없기 때문에 컴파일 에러가 생긴다
profile
나 혼자 공부 기록

0개의 댓글