loading
본문 바로가기
BACK-END/JAVA

Variable & Constant

by pikiforyou 2020. 8. 10.

Variable (변수)

램(RAM) 에 저장되는 휘발성메모리이기때문에 프로그램이 끝나게 되면 사라진다.

메모리상의 임시데이터 저장 공간의 이름

 

 

변수의 명명규칙

  • 영문자,숫자를 섞어 쓸수있으나 숫자로 시작될수는 없다.  ex) int 4you
  • 예약어는 변수로 사용불가 ex) public, int, void, main, static ... 
  • 한글/한자도 변수명으로 사용가능(유니코드) 그러나 쓰지않는다
  • 특수문자는 변수로 사용할 수 없다. 단, 언더바'_' , '$'은 식별자로 사용가능
  • 변수명은 명사형, 소문자로 시작할것 (클래스명, 인터페이스가 대문자)
  • 같은 블록(지역)안에서 동일한 이름의 변수는 선언할수없다.

 

변수선언   

int a;   //변수선언
int a = 10; //선언과 동시에 초기화

접근지정자 modifier 자료형 변수명; 의 구조로 이루어져있으며 메모리를 생성한다.

ex) public static int a;

int a;  //a라는 숫자형을 변수선언
a = 10; //a라는 변수에 10을 담는다.
a =  a + 5; //a라는 변수에 15가 재할당된다. `=` 라는 대입연산자의 오른쪽이 항상 먼저 실행된다.

 

같은 타입이라면 연속선언이 가능하다 - int num1, num2;

같은 타입에 연속 선언/초기화가 가능하다 - double num3=1.2, num4=3.4;

이미 선언된후 연속초기화는 불가능하다 - num1=10, num2=20; [ X ]

지역변수는 반드시 초기화해야 사용할수있다

 

 

Constant (상수)

- 상수는 보통 대문자로 쓴다

- final이라는 예약어를 앞에 반드시 붙여야한다. ex) final int PI; static double int PI;

- 지역변수로 사용할경우에는 값을 초기화하지않아도 에러가 나지않지만, 지역변수로 잘 사용하진않는다

- 따라서 상수를 쓸때는 값을 항상 초기화하면서 같이 선언해준다. ex) final int PI = 10;

- 상수 선언후 중간에 값을 변경시 에러

 

*literal 

프로그램에서 사용하는 모든 숫자,문자,논리값등을 일컫는 말

ex)int a = 10; //리터럴은 10

ex)실수리터럴 3.14을 float pi에 담고싶다면, 식별자 f/F를 사용해주어야한다. float pi = 3.14F;

**식별자 long형 l || L ,  float형 f || F,  double형 d || D

 

 

 

 

지역변수 및 상수

-메소드(지역)안에서 선언된 변수 및 상수

-초기화하지않고 사용할경우 컴파일 오류가 난다.

-지역변수는 반드시 초기화해야하지만 지역상수는 하지않아도 된다 (그러나 지역안에서 상수선언을 잘 안한다)

public class ConstantVariable {
	final double PI; //ERROR. 지역변수가 아닌 상수는 초기화도 같이해야한다
	static final double PI = 3.14;
	static final USER = "멤버상수는 초기화를 같이 할것"
    
    //지역
	public static void main(String[] args) {
    	System.out.println(PI); //3.14출력
        final double PI; //지역상수가 되기때문에 에러가 뜨진않는다
        PI = 3.141592 // ERROR. 선언된 상수는 재할당 불가
    }
}

 

package datatype01;

public class VariableDeclaration {

	public static void main(String[] args) {
		[변수 선언방법 #1 - 선언후 초기화]
		int num;
		System.out.println(num)//Error! 지역변수 num은 초기화가 되지않았다
		num = 100; //int형 상수 100으로 변수초기화했다.
		System.out.println(num);  //100
        
		[변수 선언방법 #2 - 선언과 동시에 초기화]
		int num2 = 33;
		System.out.println(num2); //33
        
		[변수 선언방법 #3 - 동시에 같은 타입의 변수 여러개 선언하기]
		int fnum, snum = 1000, tnum; 
		System.out.println(fnum); //Error! fnum은 초기화가 되어있지않다. snum만 초기화된 상태이다.
		fnum = snum; //그러면 fnum snum으로 초기화한다.
		System.out.println(fnum); //1000
		fnum = snum + tnum; //Error! tnum도 초기화가 되어있지않아 사용할수없다.
		tnum = 500;
		fnum = snum + tnum; // 1500
		
		100 = fnum; //Error! 대입연산자 왼쪽에 상수가 오는경우 에러가뜬다. 대입연산자 왼쪽은 항상 변수가 올것.
	}

}

 

 

 

 

 


 

댓글