상세 컨텐츠

본문 제목

JAVA 변수의 종류 (기본형, 참조형, 상수)

프로그램 언어/JAVA

by 알케이88 2019. 11. 23. 22:32

본문

자바 공부를 처음 시작했을 당시 학원을 다녀야겠다는 결심을 한 계기가 바로 이 변수다...

 

용어도 참 더럽게 많다... 멤버 변수 지역변수 인스턴스 변수... 등등

 

참 더럽게 많다...

 

확실하게 알기 위해 정리를 해보기로 했다.

 

 

 

변수의 의미부터 정확하게 알아보자.

 

변수: 수학에서는 변하는 수라고 정의를 하지만 프로그래밍 언어에서의 변수(valriable)는

단 하나의 값을 저장할 수 있는 메모리 공간을 의미하며, 새로운 값을 저장하면 기존의 값은 사라진다.

 

변수 선언: 메모리의 빈 공간에 '변수 타입'에 알맞은 크기의 저장공간이 확보되고 이 저장 공간은 변수 이름을 통해 사용할 수 있게 된다.

 

 

변수 선언 방법은

 

변수 선언

*변수를 선언 시에 변수의 데이터 타입(변수 타입)과 변수 이름을 지어주어야 한다.*

 

윗 문장은 age라는 변수를 선언 한 문장이다. 나이를 저장하는 변수 이기에 정수(intege)인  int을 변수 타입으로 지정하였다. 변수 타입은 아래에 더 자세히 나와있으니 일단 이 정도만 알아두자.

 

변수 이름처럼 프로그래밍에서 사용하는 모든 이름을 식별자라 하며, 이는 같은 영역 내에 서로 구분이 되어야 한다.

그리고 식별자를 만들 시 아래의 규칙을 따라야 한다.

 

더보기

변수 선언(식별자 만들) 시 주의사항

a. 예약어 사용 불가

[ex) true는 예약어라 불가능 하지만 TRUE는 가능]

b. 숫자로 시작 불가(abc12 -> O/ 12 abc -> X)

c. 중복 선언 불가

d. 특수 문자($, _를 제외) 사용 불가

e. 대소문자 구분하되 길이는 제한 없음

[ex) True와 true는 서로 다른 것으로 간주한다]

 

변수형을 나누는 기준 중 크게 두 가지 기준을 볼 수 있다.

 

1. data type에 따른 분류

DATA TYPE 에 의한 변수

 

기본형 변수는 자바에서 기본적으로 제공해 주는 자료형이며

                   자료의 실제 값을 저장하며 크게 4가지의 종류로 나타 낼 수 있다.

 

 

기본형 변수표1

좀 더 보기 편하자면

기본형 변수표2

(이 표를 암기해두면 좋을 듯하다.

면접시험 봤을 때 나왔었다. )

 

기본형 종류에 대해 알아보자.

 

논리형: true false 중 하나의 값만 가져서 참 거짓을 구분하고 조건식과 논리적 계산에 사용된다.

문자형: 문자를 저장하는 데 사용하며 변수에 하나의 문자만 저장한다.

정수형: 말 그대로 정수를 저장 

실수형: 실수를 저장

 

* 논리형은 다른 기본형과는 연산이 불가능하며 다시 말해 나머지는 서로 연산과 변환이 가능하다.

 

참조형 변수는 클래스 자료형으로써, 값이 저장되어 있는 주소 값을 값으로 가진다.

                   이 변수는 기본형과는 다르게 클래스에 따라 사용하는 크기가 다르다. 

                   대표적으로는 String 이 있으며 개발자가 직접 만들 수도 있다

                   위의 기본형 변수 8가지를 제외한 나머지 타입을 의미한다.

 

참조형 변수를 선언 시 변수의 타입으로 클래스의 이름을 사용하기에 클래스 이름이 참조 변수의 타입이 된다.

 

그렇기에 새로운 클래스를 작성한다는 건 새로운 참조형을 추가한다고 생각하면 된다. 

 

참조 변수를 선언 하는 방법은 기본형 변수와 같이 변수 이름 앞에 타입을 적어주는데 참조 변수의 타입은 클래스의 이름이다. 

더보기

클래스 이름 변수 이름;

// 변수 타입이 기본형이 아닌 것은 모두 참조 변수라 생각하면 된다.

좀 더 쉽게 이해 하기 위해 예를 들어보자면

 

Date today = new Date( );

이것은 Date 클래스 타입의 참조 변수 today를 선언한 것이라 생각하면 된다. 

참조 변수는 null 또는 객체의 주소 값을 가지기에 초기화를 한 것이다. 

 

객체를 생성하는 연산자 new 의 결과는 생성된 객체의 주소이다.

'='에 의해 참조 변수 today에 저장을 하고 이를 통해 생성된 객체를 사용할 수 있게 된다.

 

 

2. 선언 위치에 따른 분류

 

선언 위치에 따른 변수 분류

멤버 변수는 클래스 변수와 인스턴스 변수를 합쳐 부르는 용어이다

 

클래스 영역에 선언된 변수를 멤버 변수라 하고 그 앞에 static을 붙이면 클래스 변수라고 한다.

 

인스턴스 변수

클래스 영역에 선언되고 인스턴스 생성 시 만들어진다.

각각 다른 인스턴스마다 다른 값을 가질 수 있다.

인스턴스 생성이 필수이고 각 인스턴스마다 다른 값을 가져야 할 때 사용한다.

 

클래스 변수

인스턴스 앞에 static을 붙여서 사용한다.

인스턴스 변수와는 달리 클래스 변수는 값을 공유하는 변수이다.

클래스 로딩 시 생성되며, 클래스 이름, 변수 이름처럼 인스턴스 생성이 필요 없이 바로 사용 가능

 

지역변수

메서드 내에 선언되며 메서드 호출 시 생성되고 메서드 종료 시 사라진다.

 

매개변수

다른 말로 파라미터라고 부른다.

매소드에서 입력값을 받을 때 사용되는 변수를 매개변수라 한다.

매소드 내에 선언된다고 간주되므로 지역변수라 할 수 있다.

 

상수(constant)

 

상수는 반드시 선언과 동시에 초기화를 해야 하며, 값을 저장하면 다른 값으로 변경이 불가하다.

선언 방식은 변수랑 동일하나 변수 타입 앞에 'final'을 붙여줘야 한다.

 

'프로그램 언어 > JAVA' 카테고리의 다른 글

예약어  (0) 2019.12.01
기본 자료형  (0) 2019.11.24
클래스, 객체 , 인스턴스의 차이  (0) 2019.11.24
접근 지정자 (private, public, protected, default)  (0) 2019.11.23
자바 변수와 자료형  (0) 2019.11.22

관련글 더보기

댓글 영역